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

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

FirebaseCrashlyticsのレポート収集&送信をコントロールする

## 概要
iOSやAndroidでクラッシュ情報を収集するために、FirebaseCrashlyticsを利用されている方は多いと思います。
FirebaseCrashlyticsはデフォルトではクラッシュレポートの収集・送信を全て自動的に行ってくれますが、

* ユーザーの同意を得た上で収集&送信をしたい
* 収集&送信をコントロールしたい

など、開発者側でコントロールをしたいというニーズが発生することがあるかと思います。
この記事では、これらのコントロールを行う方法を紹介させていただきたいと思います。

## 前提
本記事はFirebaseCrashlytics 8.0.0 の情報を元に記載しています。
今後のバージョンアップなどにより動作が異なる場合があるので、ご注意ください。

## クラッシュレポートの自動収集を停止する
クラッシュレポートの自動収集を停止するには、以下のいずれかの対応が必要です。

1. `Info.plist` の FirebaseCrashlyticsCollectionEnabled キーに対して、false(Bool

元記事を表示

Android Studioのチェック付きListViewでスクロールするとチェックの状態が変わってしまう(解決)

#チェックの状態が変わってしまう

まず、スクロールするほどのチェックを追加したとして、それでスクロールしたらなぜかチェックの状態が変わってしまうのです。

↑のように、アイテム1がチェックされていない状態でスタートして、

↑のように、アイテム1にチェックを入れます。
【SikuliX】スマホゲームの自動化(ウィンドウサイズ・位置固定)

#はじめに
[前回](https://qiita.com/kazu_kr/items/5865541a3ad05ce810aa)の記事では、スマホゲームを自動化するためのサンプルコードを記載しました。
今回はSikuliXを使用していて発生する問題の解決策を記載していきます。

#発生する問題
SikuliXでは画面上の画像を認識してスクリプトにより操作を自動化します。
しかし、指定した画像サイズが画面上に表示されている画像サイズと違う場合、うまく画像認識されずスクリプトが正しく動作しない場合があります。

例えば、BlueStacksなどのエミュレータではウィンドウサイズを自由に変えることが可能です。
ウィンドウサイズ変更してしまい元のサイズに戻せなくなり、検索画像の取り直ししなければならない状況が発生することがあります。

この事象を解決するため、対象のウィンドウサイズを固定にする方法を検討しました。

#サンプルコード
“`setwindow.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import ctypes

元記事を表示

今更ながらダークテーマ対応

最近になってようやくダークテーマ関連に足を踏み入れたのでまとめてみようと思いました。

## 呼び方
・私も勘違いしていたのですが、Androidはダークモード・ライトモードではなくダークテーマ・ライトテーマと呼ぶそうですね。
参考:[ダークテーマ](https://developer.android.com/guide/topics/ui/look-and-feel/darktheme?hl=ja)

## 色分け
・ライトテーマ(デフォルト)は今まで通りvalues/colors.xmlに定義しておくとして、ダークテーマ用のものはどうすれば良いのでしょうか。答えは簡単で、values-night/colors.xmlを作成、その中に定義しておけばよさそうです。
ただし、ライトテーマ用のcolors.xmlに定義がないものをダークテーマ用のcolors.xmlに定義することはできないようです。あくまでオーバーライドです。

## 基準色
・themeとして設定。以下あたりでしょうか。
>Theme.AppCompat
Theme.AppCompat.DayNight
Theme.Ma

元記事を表示

【Android】UI テストに Page Object デザインパターンを適用する

## Page Object デザインパターン

UI テストにおける Page Object デザインパターンとは、1つの画面を1つのオブジェクトとして定義し、画面に対する操作や検証をオブジェクト経由で行う設計指針です。このデザインパターンを適用させることにより、可読性や保守性を向上させることができます。

コードを見た方がわかりやすいと思うので、今回は簡単な具体例で考えてみます。

## ログイン処理の UI テスト

Espresso を使った次のようなログイン処理の UI テストを例に考えます。

“`kotlin
@Test
fun loginSuccess() {
// ユーザー ID を入力
onView(withId(R.id.user_id)).perform(
ViewActions.replaceText(“test_user_id”)
)
// パスワードを入力
onView(withId(R.id.password)).perform(
ViewActions.replaceText(“

元記事を表示

agora SDKを利用し、Android Studioで通話アプリを作成

Vcubeで通話処理をするためのサンプルアプリを作成したので、記録に残します。

# 動作環境

* Android studio 4.1.2
* Windows 10 Pro 20H2

# agora consoleにてApp idを取得
1. [agora console](https://console.agora.io/) にアクセスする
1. 会員登録を行い、consoleを表示する
![画像2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/957268/3e246b2e-6aa4-e01b-651f-3596d9895259.png)
1. Project Managementをクリックし、Createをクリック
![画像3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/957268/e1d317d3-0675-509d-16fc-ae46352f662e.png)

1. プロジェクト名を入力し、認証方法

元記事を表示

【Android】UI テストで RecyclerView のリストアイテムの中にあるビューを操作する方法

## やりたいこと

以下のような RecyclerView で作ったリストに対して Espresso の UI テストを行うことを考えます。

赤枠が1つのリストアイテムです。このリストアイテムの中にある青枠のボタンをクリックする操作を UI テストに組み込んでみます。

## UI テストで RecyclerView を操作する

espresso-contrib パッケージの RecyclerViewActions を使うと ViewHolder が保持している一番外側のビュー(赤枠)を操作でるようになります。

下記の例は RecyclerView の中からポジション 3 のリストアイテムをクリックする操作です。

“`kotlin
onView(withId(R.id.recycler_view)).perf

元記事を表示

FlutterでAndroid向けのSplashScreenを自前で実装する

# 概要
この記事は「**FlutterでAndroid向けのSplashScreenを自前で実装する**」という内容の記事です.

ライブラリを用いて`SplashScreen`を実装する情報は散見されるのですが, Android側の`layout` ファイルを呼び出す`SplashScreen`の実装に関する情報は少ないという印象です.

そこで今回は`SplashScreen`のライブラリを用いず, 自前で実装を行うことで**カスタマイズ性の高いSplashScreenを実装する方法**について紹介していきます.

最終的には, 次の動画のような「**アニメーション**」と「**フェードアウト**」を組み合わせた`SplashScreen`を実装します.

元記事を表示

HMS Coreのバージョンと各HMS Kitとの関係

HMS Coreの各バージョンで利用できるHMS Kitをまとめました。

### App Services
|HMS Kit|HMS Core 2.4以上|HMS Core 3.0以上|HMS Core 4.0以上|HMS Core 5.0以上|HMS Core 6.0以上|備考|
|:—:|:—:|:—:|:—:|:—:|:—:|:—|
|[Account Kit](https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/introduction-0000001050048870)|〇|〇|〇|〇|〇||
|[Ads Kit](https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/publisher-service-introduction-0000001070671805)|||〇|〇|〇|〇|〇||
|[Analytics Kit](https://developer.hua

元記事を表示

コマンドラインでAndroidアプリをビルドして起動し直す

“`
export APPLICATION_ID=com.example.myapplication
./gradlew assembleDebug; adb install -r app/build/outputs/apk/debug/app-debug.apk; adb shell am force-stop $APPLICATION_ID; adb shell monkey -p $APPLICATION_ID -c android.intent.category.LAUNCHER 1
“`

たまにAndroid Studioのことが信じられなくなることがあって、そういう時はコマンドラインで一通りやりたくなる。アプリを起動する時に、Acitivityを指定する必要があるのかなと思ってたけど、monkeyというコマンドがあるのを知らなかった。

元記事を表示

[Android] RecyclerViewを用いてSticky Headerを実装する

##はじめに
RecyclerViewとItemDecorationクラスを用いて、Sticky Headerを実装します。

「Epoxy」等なのどライブラリを利用することで、Sticky Headerを実装することは可能らしいですが、今回は使い慣れてるRecyclerView用いて実装します。

分かりやすくするために、ソースコードにはなるべくコメント残していますので、最後まで見て頂ける嬉しいです。

ソースコードは[GitHub](https://github.com/kosuke-nakazono/Sticky_Header)に上げております。

##そもそもSticky Headerとは?
Sticky Headerとはこのような動きをするリストです。
![2021-08-01_22_24_09.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1830512/d34c3b02-43b6-b5c5-2971-2154cda28294.gif)

## 大まかな流れ

RecyclerViewと

元記事を表示

【Android】Emulatorが起動しない不具合の解決法

# 不具合内容
API 29/30でAndroid Emulatorを起動しようとすると下記のような不具合発生。
![error.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694762/16943c68-97d6-7684-f1ce-409879fdfbe4.png)
![error_detail_edit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694762/7d75f877-1667-401b-4286-1aa794d7af09.png)

# 解決法
`C:\Users\\.android`フォルダ内に`advancedFeatures.ini`を追加し、以下のように記述することで解決。

“`advancedFeatures.ini
Vulkan = off
GLDirectMen = on
“`

参考サイト:https://stackoverflow.com/questions/

元記事を表示

Android: dexOptions.preDexLibraries オプションは削除しよう

Android Gradle Plugin 7.0.0 から、dexOptions が Deprecated になりました。

> Using dexOptions is obsolete.

Android Gradle Plugin 7.0.0-alpha15 以上では、エラーメッセージがわかりやすくなり、以下のメッセージとなるようです。

* https://issuetracker.google.com/issues/183295952#comment4

> DSL element ‘dexOptions’ is obsolete and should be removed.
It will be removed in version 8.0 of the Android Gradle plugin.
> Using it has no effect, and the AndroidGradle plugin optimizes dexing automatically.

D8 が dexOptions を参照しなくなったため、preDexLibraries は指定する必要

元記事を表示

Android Studio と IBM Security Verify SDKをはじめて触ってみる④

# はじめに
②の記事で、Authenticator Demoアプリを使ってQRCode読み取ったあと、デバイスの検証に進むことができませんでした。なぜデバイスの検証に進めないのか調べてみました。
[Android Studio と IBM Security Verify SDKをはじめて触ってみる②](https://qiita.com/fitz/items/baadc466055e9dbd00ef)

![androidStudio (26).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678692/9deed720-6f4c-f0e2-cc19-2d9fdb18204d.png)

オーセンティケータの状態を、/v1.0/authenticators APIを用いて比較してみました。

# 1.IBM Security VerifyアプリでQRCodeを読み取った場合
まず最初に、IBM Security Verifyアプリを使ってQRCodeを読み取り、指紋認証まで実施したときのオーセンティケ

元記事を表示

Jetpack Composeを触るときにInteractive Previewが便利

こちらに書いてある内容です。

https://developer.android.com/jetpack/compose/preview?hl=ja#interactive

Jetpack Composeを利用するときに、Interactive Previewを利用すれば、アプリをビルドすることなくタップやアニメーションなどの動作確認ができます。
ドキュメントに掲載されている以下の例では、Android Studio内でボタンをタップしたときの挙動を確認することができます。

![Interactive Preview](https://developer.android.com/images/jetpack/compose/preview-interactive.gif?hl=ja)

# 設定方法
1. Jetpack Composeに対応しているAndroid Studio(Arctic Fox以上)をダウンロードします
2. 設定を開き、 `Experimental`→`Jetpack Compose`の`Enable interactive and animation p

元記事を表示

Android Studioをアップデートしたら文字列検索で文字化けしてしまった

Preferances→Appearance→Use custom fontにチェックをつける

![スクリーンショット 2021-08-04 11.06.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694541/da0151aa-f6d9-38d6-4935-aff454df58f5.png)

元記事を表示

【モバイル対応】URLでアプリを開く

# 背景
スマホのブラウザで閲覧するWebアプリケーションに配置されたボタンから
インスタグラムの**アプリ**に遷移する要件があった。
しかし、ただの https://www.instagram.com/ をhrefに設定しても、アプリには遷移されない場合があった。
そこで、どうしたらアプリが開くURLになるか調べた。

# URLでアプリを開く、とは
> 「入力されたURLを画面遷移の情報に変換し、その結果に従って画面遷移する」という処理が組み込まれているアプリに対して、URLを入力すること

引用:[「URLでアプリを開く」を丁寧に深堀りしていく](https://note.com/toridori_inc/n/nb7237a217a51)

それらは**ディープリンク**とも呼ばれている。
そして、そのディープリンクにはいくつか種類がある。

# Custom URL Scheme
今回の要件で必要なインスタグラム アプリへの遷移は
**Custom URL Scheme**が対応している。

これは、このディープリンクを踏むと、該当するアプリが端末にインストール

– されて

元記事を表示

Androidでflutterのsign_in_with_appleを使ったときにactivityが起動できない対処法

こんにちは。[virapture株式会社](https://virapture.com)の[もぐめっと](https://mogmet.com)です。
![mogmet.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42234/ce84b8ec-2a7f-2fb0-48b6-561bc0cc32f0.jpeg)

倉庫を使っておしゃれなカフェ空間にしているcafe SoulTreeというところでの一枚です。
空間もおしゃれで、昔、ゆとりですがなにかという番組でも使われていました。
駅から離れているのに結構人気スポットなので二子玉デートに使うといいと思います。

https://cafesoultree.jp/

本日はタイトルの通り、sign in with appleをしようとしたらactivityが起動できなくて困ったことがあったので対処法を記載しておきます。

実装方法に関しては下記記事を参考に実装しました。

https://medium.com/flutter-jp/sign-in-with

元記事を表示

PhigrosのGoogle Play Store版からTapTap版へと移行する大まかな手順

# TL;DR
– できないのは署名の問題だからLuckyPatcherでチェック無効化しよう

***

# 環境
– Android(11 バージョンは関係無いはず)
– Phigros(リンク無いです…) 1.6.9
– TapTap
– (以下入れてない人はリンクから導入してください)
– [Lucky Patcher](https://www.luckypatchers.com/download/)
– APKComboでそのままインストールする時に、署名がだめですみたいなエラーが出る( 出てなくても試してみても良いかもね )
– PCは必要ないです

***

# 具体的な手順

## Lucky Patcherで署名チェックを無効化
まずLucky Patcherを開いてください。
その後、上の虫眼鏡アイコンを押して `Phigros` と検索してください。
一番のあたりに1.6.9のPhigrosが出るはずなのでそれを押してください。
パッチのメニューを開いて、
`Re-sign with original signature for android

元記事を表示

OTHERカテゴリの最新記事