- 1. はじめに
- 2. 手順
- 3. Android への CSV 連絡先転送が必要な理由は何ですか?
- 3.1. 【Kotlin】runCatching の後をメソッドチェーンにしてコードを読みやすくする
- 3.2. Pixel端末で不定期にタスクボタンが反応しなくなることがある話
- 3.3. 【Android開発】Kotlin入門 Androidのディベロッパーガイドの分かりにくいところを書き直す#4
- 3.4. Kotlin-InjectによるDI(依存性注入)をやってみる
- 3.5. Android12以降でスプラッシュ画面のアイコンが表示されない場合がある
- 3.6. 【過去記事】How To Play Google Play Music On Alexa
- 3.7. 【Kotlin】Push通知のパラメータの効果的な活用方法【サンプルコード付き】
【UE5】Google Play Consoleの警告に対応する
# はじめに
先日、弊社のアプリのバージョンアップを致しまして、無事完了したと思いきやGoogle Play Console君から警告が出ました。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987446/d3125a87-92a5-d549-2f61-0e737124a940.png)
> 6 より前のバージョンの Play Billing Library を使用したアプリの公開や更新は、上記の日付から Google Play Console でブロックされるようになります。Google Play Console でブロックされるようになります・・・?
そして警告君のターンはまだ終わっておらず、2つの警告を召喚されました。
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987446/cabdd2f3-c687-0e20-5dbb-51792b48c1e1.png)
![3.png](https
camerax使用時に気をつけたいこと
# はじめに
以前、カメラの実装をComposeでした際に軽く詰まったところを消化していこうと思います
### 本文
https://developer.android.com/media/camera/camerax/preview?hl=ja#scale-type
上記にあるようにカメラのPreview Viewを実装するときはカメラの比率を変えることができないようになっています。
そのため、デザインに合わせた表示するにはBox等で無理やりカバーをしてあげる必要があります。
“`kotlin
Column(modifier = modifier) {
Camera(
useCase = useCase
)
Box(
modifier = Modifier
.fillMaxWidth()
.background(Color.White)
) {
Spacer(
[Android] 最初に、表示するActivityを変更する方法
app/manifestsフォルダに行く
AndroidManifest.xmlファイルを開く
Androidで複数のViewの一括処理 今回は複数のViewのVisibilityを一括で処理する方法を紹介します。
# パターン1
1つ目は一括で消したいView等を他のLayoutで囲ってそのLayoutのvisibilityを操作します。
“`
Jetpack Compose の基本のメモ#4 ~列と行を作成する~
### [6. 列と行を作成する](https://developer.android.com/codelabs/jetpack-compose-basics?hl=ja#5)
#### Composeの基本レイアウト要素
+ Compose には、基本の標準レイアウト要素として、Column、Row、Box という 3 つのコンポーザブルがある
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1215907/00f59557-8f5f-469b-f001-30948dc473b8.png)
+ 内部にアイテムを配置できる
+ Column
+ 内包(ラップ)する要素を縦に配置する
+ Row
+ 内包(ラップ)する要素を横に配置する
+ Box
+ 内包(ラップ)する要素を重ねて配置する
+ デフォルトでは、後から追加された要素が手前に表示される### Compose と Kotlin
+ 文字列のリストの型は`List`と定義する
+
古いバージョンの Android Studio を新規にダウンロードする方法
はじめに
AndroidStudioの過去バージョンをインストールしようとしたときに以下の画像が表示され、手こずったため解決策を備忘録として書き留めたいと思います。
![スクリーンショット 2024-07-07 13.44.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523916/6c725a63-a5ba-b118-64a7-6fda89e58e29.png)
手順
1.AndroidStudioの英語版にアクセスする。
https://developer.android.com/studio/archive2.上記URLにアクセスしても日本語版の以下URLに切り替わってしまう場合は、画像の四角枠の箇所をEnglishに変更する。
https://developer.android.com/studio/archive?hl=ja
![スクリーンショット 2024-07-07 13.48.56.png](https://qiita-image-s
UnityでAndroidビルドを出来るようにした
# この記事について
現在制作しているゲームのプラットフォームがスマホだったので、今回はAndroid版でビルドが出来るまでの手順を記事にまとめています。**GooglePlayにリリースするなどの部分は含まれていないのでご注意下さい**
# モジュールをダウンロードする
UnityHubを開いて以下の順で移動します。
`インストール` → `Androidビルドをするバージョンの⚙` → `モジュールを加える`
![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3588406/4b4c2176-9289-ca90-92a7-9b8091526af0.png)
![図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3588406/59211cbc-3663-2ddd-95e8-bb37fe9ac365.png)
![図3.png](https://qiita-image-store.s3.ap-north
【Android】FLAG_SECUREで画面のスクリーンショットを制限する
## はじめに
個人情報等の機密情報を取り扱うアプリでは、ユーザーからのスクリーンショットや画面録画を制限したいケースが出てかもと思います。
Androidでは、特定の画面(Activity)に対してスクリーンショットや画面録画を制限する機能があるので、上記のようなケースに対応することが可能です。
今回はクリーンショットや画面録画を制限する機能についてまとめたいと思います。## FLAG_SECUREとは
スクリーンショットや画面録画を制限したい対象のActivityに設定するフラグになります。## 実装
実装は簡単。
setFlagsでFLAG_SECUREを設定してあげればOKです。“` MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
【MPAndroidChart】選択したセンサをグラフ表示するプログラム
Androidアプリ投稿にクローズドテスト実施がマストになり、やる気が失せたので作成したアプリを供養します
ソースはGithubにおいてます(※汚いです)
→https://github.com/lumine2free/SensorViewer
※コード詳細は現在(2024/07/06)書いてません## アプリの機能リスト
– センサ選択機能
– 選択したセンサ値を表示・グラフ描画
– 選択したセンサ詳細の表示
– Android Developersへのリンク機能
– ライトモード/ダークモード選択## アプリのイメージ
①起動時(ライトモード)
![Screenshot_2024-07-06-19-43-22-61_7f0ca6b9478303fb4ef1820ba87ee786.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3490620/9acb7460-353f-a466-c475-adaa5a8034d8.jpeg)②ダークモード
![Screenshot_2024-07-06
【Android Studio】Apply Changes
# はじめに
コードを修正した後に再度アプリをインストールし直すことなく、
修正したコードを反映してすぐに確認したいことがあります。元々は**Install Run**という名称の機能でしたが、今は**Apply Changes**に変わっています。
このApply Changes機能について記載していきます。前提とする環境は以下の通り。
・Mac OS Sonoma 14.5
・Android Studio Koala | 2024.1.1また、公式の参考資料は以下の通り
https://developer.android.com/studio/run
https://medium.com/androiddevelopers/android-studio-project-marble-apply-changes-e3048662e8cd# Apply Changes
### 2つの機能
以下2つの機能があります。
・Apply Changes Restart and Activity
→そのままの意味で修正内容を実行している端末に反映させActivityを再起動
adb – 機内モード
adbコマンドで機内モードON/OFFを切り替える方法
## コマンド
#### 機内モードON
“`powershell
PS> adb shell cmd connectivity airplane-mode enable
“`#### 機内モードOFF
“`powershell
PS> adb shell cmd connectivity airplane-mode disable
“`#### 機内モード状態確認
“`powershell
PS> adb shell cmd connectivity airplane-mode
“`
【Android Studio】Koala: UIを元に戻す方法
# はじめに
Android Studioを新規にインストールして起動した場合、親の顔よりも見たいつものUIではなく少々面食らったので元に戻す方法を記す。Jebrains系のIDEのデフォルトのUIっぽいので、Android Studioもデフォルトがそれに合わせたのか?
また、KoalaでデフォルトのUIが変わっていましたが、前バージョンのJellyFishとか以前のバージョンからかもしれません。ちょっとこの辺り自信無いのでご了承下さい。使用環境は以下の通り
・Mac OS Sonoma 14.5
・Android Studio Koala | 2024.1.1# KoalaのデフォルトのUI
機能自体は基本変わっていないですが、UIが大分変わっており違和感しかない。。
![スクリーンショット 2024-07-06 19.21.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782130/d9654a85-215a-c59e-bc0b-5ce38d5ce3ec.png)# 元の
CSV 連絡先を Android 携帯に転送する理由と最適なソリューション
ユーザー、企業、その他のドメイン向けのアプリケーションでは、ファイル形式として CSV が広く使用されています。たとえば、Android ユーザーの多くは、電話の連絡先を CSV ファイルに保存しています。Samsung Galaxy S20、S10、S10+、S10e、またはその他の新しい Android スマートフォンを受け取った場合はどうなりますか? または、Android デバイスから誤って連絡先を消去しましたか? 連絡先は、PC など他の場所に保存されている CSV ファイルから Android デバイスにインポートする必要があります。では、CSV 連絡先を Android にインポートする最も速い方法は何でしょうか? この投稿には、優れた答えがあります。
Android への CSV 連絡先転送が必要な理由は何ですか?
CSV 連絡先を PC から Android フォンに転送する理由はいくつかあります。これは以前にも述べましたが、もう一度言及することが重要です。最も一般的な原因は次のとおりです。
【Kotlin】runCatching の後をメソッドチェーンにしてコードを読みやすくする
## はじめに
こんなコードを見たことはないだろうか。
“` kotlin: MainViewModel.kt
class MainViewModel : ViewModel() {val TAG = “RUN-CATCHING-CHAIN”
private fun badCase() {
viewModelScope.launch {
runCatching {
randomThrows()
}.onSuccess {
runCatching {
randomThrows()
}.onSuccess {
val result = runCatching {
randomThrows()
}
Pixel端末で不定期にタスクボタンが反応しなくなることがある話
# 概要
一部のAndroid端末を「3ボタンナビゲーション」モードで利用し、かつデフォルトホームアプリに「Nova Launcher」を設定していると、時々タスクボタンが反応しなくなる。(1年以上前から本問題は継続して発生)
本記事では、その問題に対する一時的な解決方法について記載している。# 問題が確認された端末
Pixel 6a、Pixel 7a# 原因
正確な原因は不明ながら、相性によるものと考えられる。
※OPPO Reno 7A、Galaxy Tab S8+、Xperia XZ3、Galaxy A23 5G利用中、この問題は発生しなかった事から。# 一時的な解決方法
### ①再起動
だいたいの問題は再起動すれば治る。### ②Nova Launcherの強制終了
再起動したくない人向けの方法。
1.Nova Launcherまたは設定を立ち上げデフォルトフォームアプリを「Pixel Lancher」に変更。
2.設定⇒アプリから「Nova Launcher」を強制終了
3.Nova Launcherまたは設定を立ち上げデフォルトフォー
【Android開発】Kotlin入門 Androidのディベロッパーガイドの分かりにくいところを書き直す#4
[フラグメント](https://developer.android.com/guide/fragments?hl=ja#samples)と
[インテントとインテント フィルタ ](https://developer.android.com/guide/components/intents-filters?hl=ja)
### 知らないこと
フラグメント
モジュール性
インテントとインテントフィルタ
インテントのユースケース
インテントのタイプ
Intent に含まれる主な情報#### Fragment
+ アプリのUIの再利用可能な部分#### モジュール性
+ UIを独立した部品(モジュール)に分割し、それらを組み合わせて全体のUIを構成する
+ 再利用性、保守性、柔軟性がある#### インテントのユースケース
+ アクティビティの開始
+ サービスの開始
+ ブロードキャストの配信#### インテントのタイプ
+ 明示的インテント
+ 暗黙的インテント#### Intent に含まれる主な情報
+ コンポーネント名
+ 起動するコンポーネントの名前
Kotlin-InjectによるDI(依存性注入)をやってみる
依存性注入(以降DI)ライブラリはDagger HiltあるいはKoinがよく用いられるが、今回はkotlin-injectを用いてComposeアプリにDIしていく。
## evant氏のkotlin-injectについて軽く
https://github.com/evant/kotlin-inject
KSPによるコード自動生成技術を用いたDIライブラリ。
Kotlin Multiplatform(以下KMP)に対応している。
詳しい使い方はGitHubのREADMEにて確認できる。### Androidでの運用について
https://github.com/evant/kotlin-inject/blob/main/docs/android.md
### KMPでの運用について
https://github.com/evant/kotlin-inject/blob/main/docs/multiplatform.md
### 公式サンプル
https://github.com/evant/kotlin-inject-samples
### 同ライブラリを用い
Android12以降でスプラッシュ画面のアイコンが表示されない場合がある
:::note info
SplashScreen API ([androidx.core.splashscreen](https://developer.android.com/reference/kotlin/androidx/core/splashscreen/SplashScreen)) を利用したスプラッシュ画面の実装を前提とします
:::Android 12 以降において `startActivity() + Intent.FLAG_ACTIVITY_NEW_TASK`で Activity を新たに起動する場合、スプラッシュ画面のアイコンが表示されません。
| before | after |
|:—:|:—-:|
|![splash_demo_before.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440643/aeb5d83e-1ccf-f16a-a6c8-32ded83151b8.gif)|![splash_demo_after.gif](https://qi
【過去記事】How To Play Google Play Music On Alexa
## はじめに
– この記事は、Qiitaアカウントの整理のため、別のアカウントで投稿した過去の記事を移行してきたものです。全く同様の記事があるかもしれませんが、盗作等ではありませんのであしからずご容赦ください。
– 過去記事 投稿日:2019年03月26日# How To Play Google Play Music On Alexa
我が家にもやってきたAlexa、有効活用したいけどなかなか使い道が・・・
Amazon Music契約すれば音楽再生に使えそうだけど、いろいろあってGoogle Play Musicから離れられない・・・
AlexaからGoogle Play Musicを流せないものか・・・で調べてたらYouTubeにこんなぴったりのタイトルの動画がありました。
[How To Play Google Play Music On Alexa](https://www.youtube.com/watch?v=nFzhZbmhFCQ)英語なので手順書き起こしてみます。
# やってること
Amazon Echoと自分のAndroid端末がBluetoothでつ
【Kotlin】Push通知のパラメータの効果的な活用方法【サンプルコード付き】
## はじめに
Push通知は表示されるテキストや画像だけではなく、それ以外に任意のパラメータを付与することができることはご存知でしょうか?
このパラメータを利用することで、サーバから任意のタイミングでアプリ側に処理をさせたり、Push通知からの起動の際に特別な処理を行うことが可能です。
今回はこのパラメータの効果的な活用方法をコードと一緒にご紹介できればと思います。Push通知の実装方法自体はこちらの記事をご参考ください。
https://qiita.com/bsj-y-tomaru/items/77f51c06e9b03ca84452
## カスタムパラメータの受け取り方
“`MyFirebaseMessagingService.kt
class MyFirebaseMessagingService : FirebaseMessagingService() {override fun onMessageReceived(remoteMessage: RemoteMessage) {
super.onMessageReceived(remote