Android関連のことを調べてみた2022年09月04日

Android関連のことを調べてみた2022年09月04日

Android 9,10,11での外部ストレージへのCSV出力不具合

## はじめに
– Qiita初投稿です。読みづらい箇所、不適切な箇所があるかもしれません。その際はコメントで指摘していただけると幸いです。
– CSV出力をする際に結構苦戦したので、自分用のメモとして残します。

## 環境
Android Studio Chipmunk | 2021.2.1 Patch 2

## 対象OS
Android 9,10,11

“`build.gradle
android {
compileSdk 31

defaultConfig {
// ~省略~
minSdk 26
targetSdk 31
// ~省略~
}
// ~省略~
}
“`

## 不具合内容
Androidアプリで、DBの内容をスマホのストレージへCSV出力をしたいが、エラーが発生し、機種によっては出力できない。
今回はDownloadフォルダへアクセスしたいが、できない。

#### エラーメッセージ
“`
/jp.hogehoge W/System.err: jav

元記事を表示

コピペでFlutter その2

[前の記事 コピペでFlutter その1](https://qiita.com/netineti512/items/583bfdfb6b141894679f)

[参考](https://docs.flutter.dev/cookbook/animation/opacity-animation)
“`sample1.dart
import ‘package:flutter/material.dart’;

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
const MyApp({super.key});

@override
Widget build(BuildContext context) {
const appTitle = ‘Opacity Demo’;
return const MaterialApp(
title: appTitle,
home: MyHomePage(title: appTitle),
)

元記事を表示

先輩エンジニアに質問するときに気を付けること

# はじめに
今回は、自分が実装で行き詰った時に先輩に実装の仕方を聞くときに気を付けるといいことを紹介していこうと思います。
### 本文
まず一番重要なのが、***自分が何を実装したくてどうして実装ができていないか***を伝えることです。
これがないと実装の着地点も分からずどこで詰まってるのかすらもわからないので助言のしようがありません
こうなってくると次に出てくるのが***どうして実装できないかすらわからない***という部分だと思います。
そうした場合は自分が参考にした記事や、サイトのURLを共有しつつコードを直接見せましょう。
ただし、ここで気を付けてほしいのが***URLやコードの共有のみを行って説明も何もしないこと***です。
そうすると、先ほどと同じように得られる情報が少なく、先輩側がコードやURLからどう実装したいのかなどを読み取らないといけなくなります。
それでは本末転倒です。
いろいろと書きましたが、実は***自分が持ちうる情報をなるべくわかりやすくすべて共有する***という部分に気を付けておけばいいだけなのです。
### 最後に
今回は、コードではなくエンジニアとし

元記事を表示

vistaでandroid studio その14

# 概要
vistaでandroid studio 1.0.1やってみた。
openglやってみた。
練習問題やってみた。

# 練習問題
三角形を描画せよ。

# 写真

![device-2022-09-03-193142.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/7a63092a-61b1-1de6-ff03-e68389543d5a.png)

# サンプルコード

“`
package com.ohisamallc.ohiapp154.ohiapp154;

import android.content.Context;
import android.content.Intent;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.m

元記事を表示

vistaでandroid studio その13

# 概要
vistaでandroid studio 1.0.1やってみた。
openglやってみた。

# 写真

![device-2022-09-03-172706.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/4645cfaf-f2c7-68e7-bf9a-d6df26ba8a01.png)

# レイアウト

“`
コピペでFlutter その1

mainの雛形をコピぺで変更するだけで実行できると思います。

雛形
“`main.dart
import ‘package:flutter/material.dart’;

void main() {
runApp(const MyApp());
}

class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);

// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: ‘Flutter Demo’,
theme: ThemeData(
// This is the theme of your application.
//
// Try running your application with “

元記事を表示

Unity 研究期間の成果

# はじめに
研究期間(実装したことないものを実装する期間)中に実装したものについて、実装方法や参考資料を本記事にまとめました。
他に面白そうな実装物などあれば、是非コメント下さい!

# 目次
1.AdMob起動時広告の実装
2.Google Play In-App Review APIの実装

# 1.AdMob起動時広告の実装
①下記サイトから “GoogleMobileAds-v7.1.0.unitypackage” をダウンロードする
※v7.2.0は未確認

https://github.com/googleads/googleads-mobile-unity/releases/tag/v7.1.0

②Unityのプロジェクト内に①でダウンロードした “GoogleMobileAds-v7.1.0.unitypackage” をインポートする

③下記サイトから “MainScene.cs” と “AppOpenAdManager.cs” をダウンロードする

https://github.com/googlecodelabs/admob-appopen-unity/tr

元記事を表示

GoogleFit連携をReactNativeで実装

# はじめに

GoogleFitから体重、心拍、血圧、歩数を取得するアプリケーションをReactNativeで作ってみました。
わりと簡単に作れたのと、AndroidStudioのデバイスで動作確認もできるのを知らず、できたことに少し驚きました。

ソースはGithubに上げてありますので主にGoogleCloudでの手順を解説していきます。

大きな流れはこんな感じ。

1. FitAPIを有効化する
1. 認証情報の設定
1. 同意画面の作成&テストユーザの登録
1. アプリケーションの起動
1. 動作確認

# 事前準備

## AndroidStdioのインストール&設定

AndroidStudioのエミュレータを使って動作確認できるのでインストールしておきましょう。

Fitアプリはデフォルトで入っていませんので、PlayStore付きのデバイスを使います。私はPixel4を利用しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57686/7666b6a2-e6

元記事を表示

Android Weekly #532 まとめ

# 概要

今週のAndroidWeeklyという週報に紹介されている記事のまとめ。
https://androidweekly.net/issues/issue-532
皆さんの最新技術キャッチアップの助けに少しでもなれば幸いです。

## Domain-Specific Models

API通信におけるデータクラスをDomain-Specificに分けることを奨励した記事。

“`kotlin
@DatabaseTable(tableName = “boards”)
data class Board(
@DatabaseField(columnName = “name”)
@SerializedName(“BoardName”)
private var boardName: String?,

private var cards: List?,

private var lastViewedTime: Long?
)
“`

このように一つのクラスを

– APIとの通信
– Local DBとのやりとり
– UIからのリク

元記事を表示

vistaでandroid studio その12

# 概要
vistaでandroid studio 1.0.1やってみた。
練習問題やってみた。

# 練習問題
qiitaのohisamaの記事をリストして、タップでブラウザで表示せよ。

# 方針

– 暗黙のインテント使う。
– listview使う。
– httpsurlconnect使う。
– AsyncTask使う。
– jsonarray使う。

# 写真

![device-2022-09-03-063009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/9da7287e-621a-dd75-0852-737ae8b0bae6.png)

# サンプルコード

“`
public void run() {
new AsyncTask() {
ListView list = (ListView) findViewById(R.id.list);
final ArrayList data = new

元記事を表示

vistaでandroid studio その11

# 概要
vistaでandroid studio 1.0.1やってみた。
練習問題やってみた。

# 練習問題
qiita apiを叩いて、jsonをパースして、listviewに表示せよ。

# 写真

![device-2022-09-03-065018.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/6c25fd12-a8f0-a44a-0222-c11f2b2bfa83.png)

# レイアウト

“`
vistaでandroid studio その10

# 概要
vistaでandroid studio 1.0.1やってみた。
練習問題やってみた。

# 練習問題
qiita apiを叩け。

# サンプルコード

“`
public void run(View view) {
TextView tv = (TextView) findViewById(R.id.chage);
String dis = “”;
String urlStr = “https://qiita.com/api/v2/users/ohisama@github/items”;
String result = null;
HttpURLConnection con;
URL url = null;
BufferedReader reader = null;
try
{
Log.e(“ohi”, “ok0”);
url = new URL(urlStr);
con = (HttpURLConnection) url.openConnection();
Log.e(“ohi”, “ok1”);

元記事を表示

Android端末の画面収録をMacでやる方法

自分のメモ用に記載

## 事前準備
– homebrewで以下をインストール

“`shell
brew install scrcpy
brew install android-platform-tools
“`

## 動かし方
– Android端末を繋いで以下コマンドを実行
“`shell
scrcpy
“`

## 画面録画
– 今いるディレクトリに保存される
“`shell
# 録画開始
scrcpy –record file.mp4
# 録画終了
# – Macと接続している線を抜く (?)
“`

元記事を表示

RecyclerViewで表示されているセルの高さを取得する

RecyclerViewのセル(下画像の赤枠部分)の`height`と`width`の表示されている比率を取得する必要があり、参考になる記事が少なかったため投稿します。

### 比率計算処理の関数を実装
今回はRecyclerViewがスクロールされた際に、表示されている全てのセルの比率をログとして出力する方針で実装していきます。

“`kotlin
fun getVisibleCellHeight(rv: RecyclerView) {
val layoutManager = rv.layoutManager as GridLayoutManager

val firstPosition = layoutManager.findFirstVisibleItemPosition

元記事を表示

vistaでandroid studio その9

# 概要
vistaでandroid studio 1.0.1やってみた。
ListView使ってみた。

# 参考にしたページ

https://qiita.com/joji/items/dca48fb0e915077a01b2

# 写真

![device-2022-09-01-110532.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/27c846c9-6876-7112-680c-a0f6a0869b90.png)

# レイアウト

“`
OkHttpのレスポンスボディを文字列に変換しても文字化けするとき

ハマりました・・・

現象としては、Postmanを使ってもCURLを使ってもきちんとレスポンスボディが読めるのですが、なぜかOkHttpを使うと文字化けしてしまい、ボディをデシリアライズできませんでした。
結論から言うと、gzipという暗号化処理がされていたせいでした。

これを解決するには二通りの方法があります。

1. Encodingを許可しない(こっちは簡単ですがセキュリティ面でリスクがありそうです)
2. GZIPで復号する

## 1. Encodingを許可しない

これは簡単で、リクエストヘッダーから「Accept-Encoding」を削除してしまえば大丈夫かと。
例えばInterceptorなどを用いて

“`kotlin
val request = chain.request().newBuilder()
.removeHeader(“Accept-Encoding”)
.build()
val response = chain.proceed(request)
“`
リクエスト

元記事を表示

【Android】EditTextでエンター押下後フォーカスがループしない

# 不具合の事象
2個のEditTextを用意し、それぞれ`android:imeOptions=”actionNext”`を付与。
2個目のEditText内でエンターを押した場合、1個目のEditTextにフォーカスがループするときとしない時がある。

|ループする|ループしない|
|—-|—-|
|![normal.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694762/1d28500e-689f-b4a9-f833-87253b3a274b.gif)|![false.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694762/79fbbfdb-b6c1-0f4d-a1ce-3007960c6f77.gif)|

# 原因
画面内に`RecyclerView`があるとそれにフォーカスされるので、フォーカスがループされない。`Button`などの他のビューではフォーカスされず、`RecyclerView

元記事を表示

【自己責任】AndroidOSに疑似Linux環境(Termux)構築方法について。

数年ぶりにAndroid携帯電話を購入したため、その環境構築の一端を投稿するため、久しぶりに投稿する。

# AndroidOSに自己責任でTermuxをインストールする方法について。
野良ハブからインストールするため、自己責任が伴うことは大事な注意点である。

## 野良ハブとは。
今回は、[F-Droid](https://f-droid.org)のことで、Android向けのオープンソースソフトウェア(OSS)がまとめられている場所を指す。

## インストール
以後は携帯電話からの操作になる。

### 1.上記のURLから指定のアプリをダウンロードする。
[https://f-droid.org](https://f-droid.org)。

![1fdroid.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/425551/bb10b03a-9731-a2b4-b323-2a90af7011fd.jpeg)

また、自己責任ではあるが、Google Playが安全かと言えばそんなことは無いため、

元記事を表示

vistaでandroid studio その8

# 概要
vistaでandroid studio 1.0.1やってみた。
AudioTrack使ってみた。

# 参考にしたページ

https://qiita.com/rild/items/339c5c36f4c1ad8d4325

# サンプルコード

“`
package com.ohisamallc.ohiapp154.ohiapp154;

import java.util.Arrays;

/**
* Created by ore on 22/08/30.
*/
public class Oscillator {
private double frequency = 440;
private double f0 = 280;
private double[] buffer;
private double t = 0;
private double sampleRate;
private Vowel targetVowel = Vowel.A;
public Oscillator(int bufferSize,

元記事を表示

vistaでandroid studio その7

# 概要
vistaでandroid studio 1.0.1やってみた。
AudioTrack使ってみた。

# 参考にしたページ

https://qiita.com/niusounds/items/beb0140117b9d3325ce7

# サンプルコード

“`
package com.ohisamallc.ohiapp154.ohiapp154;

/**
* Created by ore on 22/08/30.
*/
public class Oscillator {
private double frequency = 440;
private double[] buffer;
private double t = 0;
private double sampleRate;
public Oscillator(int bufferSize, int sampleRate) {
buffer = new double[bufferSize];
this.sampleRate = sampleRate;
}
public double[] n

元記事を表示

OTHERカテゴリの最新記事