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

Android関連のことを調べてみた2021年09月03日
目次

【Android】Android 12対応をする前にplay-services-analyticsのバージョンを確認しよう

## 結論
v17.0.1以上に上げればOK

“`gradle:build.gradle
com.google.android.gms:play-services-analytics:17.0.1
“`
https://developers.google.com/android/guides/releases#august_19_2021
>The latest update to the Analytics library includes the following change:
>・Fixed issue where library could not be built with Android 12 as its target.

## 何が修正されたのか(何が悪さをしていたのか)
初期化時に呼ばれるクラス内にAndroid12から必須となった可変性フラグが宣言されていないPendingIntentがあった

“`java:Application
GoogleAnalytics.getInstance(requireContext())
“`

“`log:lo

元記事を表示

aabをUSB経由で実機にインストールする方法

adbでapkをインストールするように、開発中のアプリのaabをインストールする方法を紹介します。

基本的には[公式ドキュメント](https://developer.android.com/studio/command-line/bundletool)のとおりです。

# 手順
* 以下からbundletoolをダウンロードし、/tmp/以下に保存します。
https://github.com/google/bundletool/releases
* 以下のコマンドでaabを複数のapkに分解します

“`
java -jar /tmp/bundletool-all-1.8.0.jar build-apks –bundle=release.aab –output=/tmp/signed.apks \
–ks={キーストアへのフルパス} \
–ks-key-alias={keyAliasで指定する値} \
–ks-pass=’pass:{storePasswordで指定する値}’ \
–key-pass=’pass:{keyPasswordで指定する値}’

元記事を表示

【Flutter】全画面を削除し遷移する

## 何度か画面遷移をした後にトップレベルの画面に戻す

“`dart
Navigator.of(context).pushNamedAndRemoveUntil(‘/page’, (_) => false,);
“`

### メソッド

条件を満たすまで画面を破棄し遷移するため, 条件部分でfalseを返している.

“`dart
pushNamedAndRemoveUntil(
”, //page
(_) => false, //条件
)
“`

参考 https://api.flutter.dev/flutter/widgets/Navigator/pushNamedAndRemoveUntil.html

元記事を表示

Android アクセシビリティ

#はじめに
近年、日本でも多様性が求められる世の中になっており,アプリ開発においてもアクセシビリティを意識する必要があると思います。本記事ではAndroidアプリに関するアクセシビリティについてご紹介します。

# 目次
* アクセシビリティとは
* Android
– フォントサイズ
– 表示サイズ
– TalkBack

#アクセシビリティとは
障害を持つユーザーが情報を利用できるようにすることだけではありません。
ユーザーの能力や状況に関係なく、すべての人が情報を利用できるようにすることです。
アクセシビリティを念頭に置いてアプリを設計するということは、
シンプルさと知覚可能性を優先し、すべての設計上の決定を調べて、
さまざまな能力を持つユーザーやさまざまな方法で、
デバイスを操作するユーザーを除外しないようにすることを意味します。

# フォントサイズ
Android上のフォントサイズを調整して、画面上のアイテムのサイズを変更できます。

確認方法
設定→ユーザー補助→フォントサイズ→小・デフォルト・大・最大 から選択

|デフォルト | 最大|
| :-: | :-

元記事を表示

[Android] DataBindingでソースコードを減らしたい

# Fragment側の記述量を減らしたい

**Fragment側の記述量は多くなりがちです。
そして記述量が多いと可読性が落ちるでしょう。**
そんな時は**DataBinding**が役に立ちます。

今回作成するサンプルアプリでは以下の記述量で済みます。
※ DataBindingを使用するためのレイアウトをinflateする記述は別途必要です。

“`DataBindingFragment.kt
// テキストフィールドに入力された文字を監視し、ViewModelに伝達する
mBinding.myTextFiled.addTextChangedListener {
mBinding.viewModel?.updateText(it.toString())
}
“`

## どんなアプリができるの?

10文字以上入力すると、画像が表示され、「10文字以上入力してね!」の文字が非表示になります。
また入力文字数が表示され、10文字以上の入力で緑色、10文字未満では赤色に着色します。
こんなアプリができます。

![2021-09

元記事を表示

Flutter: Android studioでFirebaseをセットアップする最低限の手順(Android&IOS)

###この記事について
この記事はFlutterでAndroidとIOSのアプリを作る際、Firebaseを使用するときのセットアップ方法についての記事です。
実装するたびに動画の教材を見ており時間が掛かってしまうため(特にIOS)、一連の作業を箇条書きにしております。
セットアップのための最低限やることを書いた記事のため、Firebaseの機能の実装等は記載していません。また、Firebaseプロジェクトの作成は省略しております。

###開発環境

“`
% flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 2.6.0-1.0.pre.150, on macOS 11.5.2 20G95 darwin-x64, locale ja-JP)
[✓] Android toolchain – develop for Android devices (Android SDK version 31.0.0)
[✓] Xcode –

元記事を表示

Android apk old version download

https://apkpure.com/

元記事を表示

ウィジェット一覧を作る ~ホームアプリ(ランチャーアプリ)の作り方~

ホームアプリ(ランチャーアプリ)の作り方シリーズ
今回は端末にインストールされているウィジェット一覧を表示させてみます。

– [超シンプルなホームアプリを作る ~ホームアプリ(ランチャーアプリ)の作り方~](https://qiita.com/ryo_mm2d/items/00326b0d8f088975fa0e)
– [システム壁紙を制御する ~ホームアプリ(ランチャーアプリ)の作り方~](https://qiita.com/ryo_mm2d/items/02bfab5f130b8d17124b)
– [ウィジェット一覧を作る ~ホームアプリ(ランチャーアプリ)の作り方~](https://qiita.com/ryo_mm2d/items/19bd3dce898821920036) ←イマココ

※シリーズが続くとは言っていない

|||
|–|–|
|![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155171/5f1f1dad-d34e-646c-2007-2e245f5bcd66.png)|

元記事を表示

FlutterでAndroidEmulatorに won’t run without Google Play services と表示されGoogleMapが表示できない

#■前提
Flutterの開発中、AndroidEmulator上に地図を出したいと思い、
GoogleMapを表示するサンプルを試しました。
https://codelabs.developers.google.com/codelabs/google-maps-in-flutter#0

Android用のキーを取得して、AndroidManifestに設定しと進めていったところ、
無事実機ではGoogleMapが表示されることを確認。

ところがEmulator上で表示しようとしたところ、
googlemap_sample won’t run without Google Play services,
which are not supported by your device.
と表示され地図が出ません。

AndroidStudioのログには
W/GooglePlayServicesUtil( 3773): Google Play Store is missing.
W/Gralloc4( 3773): allocator 3.x is not supported
というような

元記事を表示

ListViewでCheckedTextViewを実装したい

前回、ListViewでCheckedTextViewを実装する方法をまとめました。
しかしその後の調査で、前回まとめた方法がツッコミどころ満載の方法だったということが分かりました。
これ以上セルフツッコミはしたくない…!ということで再びListViewについてまとめます。

前回の記事は[こちら](https://qiita.com/satona-oinuma/items/b033ffcc346dc167f749)です。
CheckedTextViewの基本と、ListViewへのツッコミ力が得られるかと思います。

そして、前回実装したListViewにセルフツッコミした部分は以下の2点です。
1. ListViewの特徴であるViewの再利用ができていない
2. 要素が画面外に出た時に初期化されてしまう

今回は、前回まとめたソースコードを元に、実装を行います。

◯実行環境
Android Studio:4.2.2
Kotlin:1.3.72

##1. ListViewの特徴であるviewの再利用を実装

実はListViewには、convertViewという画面外に出

元記事を表示

AndroidのUI開発にJetpack Composeを使ってみる(1)

# 前提条件
– Android Studio Arctic Fox以降
– Kotlinの基本的文法

# 導入
Android Studioを開いて**New Project** -> **Empty Compose Activity**を選択しましょう。
ただし古いバージョンのAndroid Studioを使っている場合は該当部分が存在しません。
![スクリーンショット 2021-08-31 20.17.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/592867/ffe45768-c19c-4b15-d838-4746503d5757.png)

アプリケーションの情報を決めると以下のようなテンプレートコードが生成されます。(2021/8/31現在)

“`kotlin:MainActivity.kt
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle

元記事を表示

画面とコードのみで理解していくJetpack Compose その1

### Hello World

“`MainActivity.kt

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text(text = “Hello World”,Modifier.padding(8.dp))
}
}

“`
Text ≒ TextView
Modifilerで各種属性が設定できる。

### Row Column

“`RowLayout.kt
@Composable
fun RowLayout() {
Row(
modifier = Modifier
.fillMaxSize(0.5f)
.background(Color.Gray) ,
horizontalArrangement =

元記事を表示

Salesforceアプリを起動して取引先情報を表示する方法(for Android)

ところで、Androd開発では、別のアプリを起動する処理を書くことが多いですね。

公式ドキュメントの[別のアクティビティを開始する](https://developer.android.com/training/basics/firstapp/starting-activity?hl=ja)を一読すれば、コード自体は簡単に書くことができます。

“`java:Javaで別アプリを起動する処理
Uri intentUri = Uri.parth(“[Intentに渡すための文字列]”);
String packageName = “[起動するアプリのpackage名]”;
String className = “[起動するアプリのClass名]”;
intent.setClassName(packageName,className);
Intent intent = new Intent(Intent.ACTION_VIEW, intentUri);
startActivity(intent);
“`

“`kotlin:Kotli

元記事を表示

[AndroidのViewを制する] ズーム、ドラッグアンドドロップを完全に理解する

## この記事の目標
ズームイン・ズームアウト・ドラッグアンドドロップのを実装方法を学びます。またView周りのイベントを実装する際に、個人的によく使う実装方法や、考え方を共有できればと思います。
実際に簡単なアプリを作りながら学んでいきましょう。

### 大前提
[OnDragListener](https://developer.android.com/reference/android/view/View.OnDragListener)を使用する事で、ドラッグアンドドロップは簡単に実装できるでしょう。
しかしView周りのイベントを実装する際の、より汎用性のある実装方法や考え方を身につけるため、今回は[onTouchEvent](https://developer.android.com/training/graphics/opengl/touch)を使用してドラッグアンドドロップを実装します。

## アプリの完成形

![2021-08-29_16_18_20.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

Universal Android Music Player(UAMP)のカスタマイズ (メニューの変更 1)

#はじめに
Android用アプリのプログラミングを学ぶため、Googleが公開しているサンプルコード **Universal Android Music Player(UAMP)**をカスタマイズしてみます。
これまでに、端末(アプリを実行するスマートフォンなど)内の好きな音楽ファイルを再生するように変更しました。
今回は、メニューをカスタマイズをします。

#環境
####PC
MacBook Pro 16
2.3 GHz 8コアIntel Core i9
16 GB 2667 MHz DDR4
macOS Big Sur ver.11.5.2

####開発用SW
Android Studio 4.2.1

####Target Device (Virtual Device)
Category: Phone
Name: Pixcel 2
Resolution: 1080×1920 420bpi
API Level: 28
Android: 9.0
CPU: x86

#コードの確認
###ルートメニュー表示
アプリの起動からルートメニューを表示するまでの大体の流れは下図のとお

元記事を表示

環境センサーのデータをスマホでモニタリングする(Flutter) – データ蓄積編 –

## 概要
* 新型コロナの影響で環境センシングデバイス、可視化ツールの需要が高まっている。
* 前回「IoT-DX-Kit」を使って、スマホのFlutterアプリ上で気温、湿度を可視化してみた。
* 今回はクラウド(AWS)上にデータ蓄積を行う。
* EC2インスタンスやRDB、S3を使わない方法を試してみた。

AWSのCloudWatchにデータが温湿度データが蓄積されている様子
![スクリーンショット 2021-08-31 9.08.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/701445/a820c19d-532d-8e0d-9b3d-1814ba52f704.png)

## 用意するもの
* IoT-DX-Kit マイコンボード
* DHT22 温湿度センサー
* AWSアカウント

## 環境構築
(1)Flutterをインストール
 https://www.arduino.cc/en/main/software
(2)Flutter Blueをインストール
 https:/

元記事を表示

【Firebase】 Realtime Database 初トライ前に知っておくといいかも?な5つの箇所(スクリプト編)

## 概要
androidアプリ [ツケ台帳](https://play.google.com/store/apps/details?id=com.chelak.tsuke_daicho) を作る際にFirebase realtimedatabaseを初めてさわったのですが、
特に詰まった部分を、備忘録かねて初心者的な目線でメモしてみます (スクリプト編)
アプリの解説、過去の投稿は→[こちら](https://qiita.com/n_ku/items/de1675af32ca53acc562)

Android 12 のスプラッシュ画面 (Splash Screen) に対応する

この記事で解説している AndroidX Splash Screen Library のバージョンは 1.0.0-alpha01 です。

Android 12 からアプリ起動時にスプラッシュ画面 (Splash Screen) が表示されるようになりました。

また、アプリ独自のスプラッシュ画面を実装している場合に、targetSdk = 31 (Androud 12) 以上にすると Lint がスプラッシュ画面と思われる Activity について、以下の Warning を表示するようになります。

> The application should not provide its own launch screen

![splashactivity_lint.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/17931/740f366e-6f6a-dc62-5795-b931b5c2fd1f.png)

この記事では既存のアプリを Android 12 のスプラッシュ画面に対応する場合の

元記事を表示

Pepper SDK入門(30) 値札感覚で外してはいけないテキスト音声合成のタグの話

#はじめに
今回はタイトルにもある通り、テキスト音声合成の話です。
テキスト音声合成、つまりText To Speechエンジンの使用には、特殊なタグが必要になります!つけっぱなしにしないといけないタイプのタグです?

#テキスト音声合成とは
通常、発話のイントネーションや間の調整などは漢字やひらがな、カタカナの組み合わせで行います。
その書き方については公式のページがあるので[こちら](https://doc.robot.softbank.jp/pepper_biz/manual/index/topics_detail13/id=256)を参照してください。
それとは別の特殊な書き方である、中間言語について紹介することが本記事の狙いです。
中間言語では、Pepperの発話内容をカタカナで表記します。以下で、発話調整に使用可能なタグとその機能を見ていきましょう。
まずは基本となる、文頭記号と文末記号のタグをまとめます↓
・ \…文の先頭
・ \…ふつうの文末
・ \…疑問形の文末
・ \…上昇調の文末
・ \…名詞や代名詞で終わる文末
・ \

元記事を表示

Jetpack ComposeのMutableStateが変更されてからdoCompose()までの流れ

なんどもフィールドに入ったり他へ保存を繰り返すので結構しんどいコードリーディングになります。

以下の書き換えが走ったときの挙動を追います。

“`kotlin
@Composable
fun Content() {
var state by remember { mutableStateOf(true) }
LaunchedEffect(Unit) {
delay(12000)
state = false
}
if (state) {
Node1()
}
Node2()
}
“`

今回わかったこと

Recomposer.runRecomposeAndApplyChanges()がだいたいすべてやっている。

runRecomposeAndApplyChanges()が行っていることは1〜4になると思われる。 **0〜2までを今回は読んでいる**。

0: MutableStateが非同期で変更されて、Recomposer.snapshotInvalidationsとい

元記事を表示

OTHERカテゴリの最新記事