Amazon と GCM 問題


まだ Amazonで公開してなかったアプリを、対応させようと思って、いつもの手順 を取っていたところ、公式の Android プロジェクトに Firebase を追加する が変わっていたので、参考にしつつ app レベルの build.gradle を書き変えたら、Amazon さんではねられたので備忘録。

いつもの手順だと dependencies の

  compile 'com.google.android.gms:play-services-ads:9.4.0'
  compile 'com.google.firebase:firebase-analytics:9.4.0' ←コヤツをコメントアウトする。

は、いいんですが、

公式さんに

AdMob 用のライブラリとして、

com.google.firebase:firebase-ads:10.0.1

となっていたので、上の行の 'com.google.android.gms:play-services-ads:9.4.0' を変更してみました。

その後、アプリテストをしたところ、GCM を使用しているので、Kindle 互換とはみなされなく なったとさ。
com.google.firebase だと、有無を言わさず GCM 使用と見なされるもよう。

元に戻したら、一応、テストにはパスしたけど、今後どうなっていくんじゃろ。
Amazon の広告が全年齢対応してくれるのが一番いいんだけど・・・。

スポンサーサイト

Android Studio にローカライズ用のツールがっ


遅っ、気づくの遅っ!

Android Studio に、文字列をローカライズ(各国言語対応)するための機能が追加されていたようです。
忘れちゃいそうなので備忘録。

Android Studio の Project Explorer で、app/res/values/strings.xml を右クリックすると、ドロップ・ダウンメニューが表示されるので、Open Translations Editor を選ぶと、ツールが開きます。

左上の地球アイコンをクリック(Add Local)すると、国を選べるので、対応させたい国を選んで、あとは編集。

文章の途中で改行したいときは、下の 「Key:」 、「Default Value:」、「Translation:」が並んでいるペイン(?)の右側にある「1行から複数行」アイコンをクリックして改行したいところで、エンターすればOK。
※改行用に、文章の途中に「/n」を入れても、そのまま文字列「/n」と表示されてしまうので注意。

strings.xml が Default Value になっていて、翻訳したい文字列だけを入力すれば良いので便利。

これまでは、ローカライズ用のファイルを作った後に文字列を追加すると、各国共通で良い文字列でも、それぞれのファイルに追加しなくちゃならなかったけど、コレを使えばその必要もなくなりそうですね。

【Kindle】 アイコンがジャギジャギ


Android Studio でアプリを開発して、Kindle で実機テストすると、カルーセル(ホーム画面のスライドさせるアイコン群)のアイコンがジャギジャギ。

アイコンの画像を入れている mipmap-なんちゃらフォルダの、どの解像度のアイコンを表示してるのか、各フォルダのアイコンを1個づつ、高解像度のアイコンに入れ替えて試していたんだけど、どうにも上手くいかないので、ネット検索したら、いつもの stackoverflowさんにこんな記述 が。

According to a Kindle Fire development tutorial :
Tip 6: Fuzzy App Icons If you're loading apps through ADB or another method, you may have noticed that the app icons on the home screen are small and fuzzy compared to the apps and books that show up through the Kindle Fire interface. As it turns out, the graphics for apps and media purchased through Amazon are loaded from a web service rather than referenced from the manifest file. So, once you get your application on the Amazon Appstore, and download it via the store, your application icon graphics appear correctly.



まぁ、グーグル翻訳したものを、ざっくりかいつまむと、ADB デバッグしてるときはアイコンがジャギジャギになってると思うけど、Amazon アプリストアからインストールされたものは、Web経由で高解像度アイコンが読み込まれるから心配すんな、みたいなことですかね。

リリースするときに、掲載情報とともに高解像度アイコン(512×512)をアップするのはそのためか。

ひー、何年アプリ作ってるんだってね。

【Firebase】 公式で MainActivity へのコードの埋め込みがなくなってる


Firebase の実装法、公式を覗いてみたら、MainActivity へのコードの埋め込みがなくなっていた。
以前の記事はこちら

Firebase で json ファイルを入手して、app フォルダに配置したら、下記を書き換えるだけでOKのようです。

プロジェクト・レベルの build.gradle

classpath 'com.google.gms.goog;e-services:x.x.x'


と、

アプリ・レベルの build.gradle


dependencies {
   compile 'com.google.firebase:firebase-core:x,x,x'
}

apply plugin: 'com.google.gms.google-services'



結局、build.gradle だけを書き換えれば良いことになったのね。

【AVD】 Telephony 関係


こちらで、Android 7 の Telephony 関係での問題 に頭を悩ませておりますが、対応策が何となく分かったので備忘録。

一応、電話着信があった場に、onPause() 、通話終了時には、onResume() を呼び出しているようなので、そこで着信時の処理を行えば問題なさそうです。

ただ、Activity がバックグラウンドに回ったときも、同様の動作になってしまうのが痛いところ。
ここで、PHONE_STATE をチェックすれば良いのだろうか?
あとでテスト。