EU向けの同意バナーを停止しました
【Androidアプリ開発】あれはどうやるんだっけ?をため込んでいきます

【Androidアプリ開発】あれはどうやるんだっけ?をため込んでいきます

2021年11月24日

こんにちは、コンテンツクリエイターのともすけです。

ネットで探せば見つかる情報は多いのですが、特に筆者自身がよく「あれはどうやるんだっけ?」と思ったことをため込んでいくページになります。あまりに増えたときは、分類します。

String.format内での ”%” をエスケープ

バックスペースでやるもんだと思っていましたが、”%”でやるんですね。

int num = 50;
String.format("%d%%", num);
  → 50%

WorkManagerを使うときの話(2022/02/21)

build.gradle(Module用の)のdependencies記述に

  • androidx.work:work-runtime:2.7.1(数値はバージョン)

を入れたモノを追記。以下は今使っている設定値です。ターゲットがAndroid12以上か未満かで、WorkManagerのライブラリバージョンを変えてください。経験的には、

  • 2.7.1:Android12以上
  • 2.6.0:Android11以下

でビルドできた感じ。

dependencies {
    def work_version = "2.7.1"  // これと
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.2.1'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
    implementation "androidx.work:work-runtime:$work_version"  // これ
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

上記パーツは色が塗れないので、「これと」「これ」を行末にコメントとして入れました。他の行はWorkManagerには関係ないです。既存の build.gradle(Module用)に「これと」「これ」を追記してください。その際は「//」のコメントは外してください。XMLのコメント表記ではないので。

OSのバージョン毎に動作を変える

if(Build.VERSION.SDK_INT >= $VERSION){
    ...
}

端末メーカーを確認する

Amazonタブレット(Fire HD系)向けにもアプリを書いていて、Google Playとソースコードを共通化するための条件分岐。

if (Build.MANUFACTURER.equals("Amazon")) {
    Log.d(TAG, "This is amazon tablet");
} else {
    Log.d(TAG, "This is NOT amazon tablet");
}