val intent = Intent(Intent.ACTION_GET_CONTENT)
.setType("*/*")
.putExtra(Intent.EXTRA_MIME_TYPES, arrayOf("image/png", "image/jpeg"))
ACTION_OPEN_DOCUMENT でも使えます。
2020年8月10日月曜日
ACTION_GET_CONTENT で複数の MIME type を指定したいときは EXTRA_MIME_TYPES を使う
画像を ACTION_GET_CONTENT で取りたいけれど、image/* ではなく image/png と image/jpeg だけにしたいという場合は EXTRA_MIME_TYPES を指定します。このとき type には */* を指定しておきます。
2020年8月9日日曜日
アプリ内から Google Play にレビューを投稿できるようになりました。
In-App Review API は Java/Kotlin のほか、native code と Unity からも使えます。
In-App Review API のガイドラインを確認して利用しましょう。
例えば
In-App Review API を使うには Google Play Core Library を追加します。
In-App Review API の挙動をテストするにはアプリが Google Play に公開されている必要がありますが、製品版として公開されている必要はなく、internal test tracks や internal app sharing に公開することでテストできます。
また、Unit Test や Instrumentation Test 用に ReviewManager の Fake が用意されています。
In-App Review API のガイドラインを確認して利用しましょう。
例えば
- レビューのUI(ドキュメントではカードと呼んでいる)を出す前に "Do you like the app?" のような意見を聞く質問を出してはいけない。
- カードに変更を加えたり、上や周りにオーバーレイを出したり、カードを勝手に消してはいけない。
- 過度に出してはいけない。quotaがあり、超えるとカードが出なくなる。
In-App Review API を使うには Google Play Core Library を追加します。
dependencies {
...
implementation "com.google.android.play:core-ktx:1.8.1"
}
Review Flow を開始するには、ReviewManager の requestReviewFlow() を呼び出します。requestReviewFlow() の結果が成功だと ReviewInfo が取得できます。取得した ReviewInfo を使って ReviewManager の launchReviewFlow() を呼び出します。
val manager = ReviewManagerFactory.create(context)
...
private fun startReviewFlow() {
manager.requestReviewFlow()
.addOnCompleteListener { request ->
if (request.isSuccessful) {
val reviewInfo = request.result
manager.launchReviewFlow(activity, reviewInfo)
.addOnCompleteListener {
// レビューフローが終了した
// ユーザーがレビューしたのかしてないのか、
// そもそもカードが表示されたのかどうかは取得できない
// アプリの通常フローを進める
}
} else {
// なにかしら問題があったということだが、
// 結果によらずアプリの通常フローを続ける
}
}
}
In-App Review API からは、ユーザーがレビューしたのかどうか、レビューのカードが表示されたのかどうかは取得できません。
In-App Review API の挙動をテストするにはアプリが Google Play に公開されている必要がありますが、製品版として公開されている必要はなく、internal test tracks や internal app sharing に公開することでテストできます。
また、Unit Test や Instrumentation Test 用に ReviewManager の Fake が用意されています。
val manager = FakeReviewManager(context)