PermissionDispatcherをkotlinで使おうとしていたのですが、なぜかコードが自動生成されなかったので、その対策メモ
調べたところ、2017-09-14時点で、kotlin対応はまだ正式リリースされていないようで、ベータ版ではあるが、3.0.0を使うようにしないと行けない模様。
cf:
上記資料より、build.gradle(app)に下記のように記載が必要の模様
repositories { jcenter() maven { url "http://oss.jfrog.org/artifactory/oss-snapshot-local/" } } dependencies { compile("com.github.hotchemi:permissionsdispatcher:3.0.0-SNAPSHOT") kapt "com.github.hotchemi:permissionsdispatcher-processor:3.0.0-SNAPSHOT" } }
さらに、コードにはjavaと違い以下を記載する
@RuntimePermissions(kotlin = true) // kotlin=trueをいれる class MainActivity: AppCompatActivity() { ... override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { super.onRequestPermissionsResult(requestCode, permissions, grantResults) onRequestPermissionsResult(requestCode, grantResults) // kotlinの拡張関数で定義されているため、javaのように頭にMainActivity.onRequestPermissionsResultとする必要はない } @NeedsPermission(Manifest.permission.CAMERA) inline fun showCamera() { // inlineもしくはinternalで定義する必要あり。internalのほうがthisが参照できるので使いやすい // カメラ起動てきな処理 } // 例えばボタンをおされたらカメラ起動などの起動の仕方 fun onClickButton() { showCameraWithCheck() // @NeedsPermissionに定義したメソッド名+WithCheck()で呼び出し。 } }
細かい実装は以下が参考になった
はじめに入門向けにとにかく短くまとめました言わずと知れたPermissionsDispatcherの紹介記事ですざっくり理解できたらより詳しい記事やドキュメントを読みましょうMパーミッションに対応するサンプルコー... 5分で対応するMパーミッション - Qiita - Qiita |
GitHub is where people build software. More than 73 million people use GitHub to discover, fork, and contribute to over 200 million projects. Build software better, together - GitHub |
近々正式リリースされるので、kotlinにてPermissionsDispatcherをprodで使うのは少し待ちましょう
正式版リリースされたようなので、以下の記載でイケルと思います。
dependencies { compile("com.github.hotchemi:permissionsdispatcher:3.0.1") annotationProcessor "com.github.hotchemi:permissionsdispatcher-processor:3.0.1" }
こんにちは。virapture…
View Comments
ありがとうございます!@NeedsPermissionはinlineでなくても定義できるかと思います!
ありがとうございます!記事を若干修正いたしました!
Very nice post. I just stumbled upon your blog and wanted to say that I’ve really enjoyed browsing your blog posts. In any case I’ll be subscribing to your feed and I hope you write again soon!
Thanks for sharing. I read many of your blog posts, cool, your blog is very good. https://accounts.binance.com/cs/register?ref=T7KCZASX
Your article helped me a lot, is there any more related content? Thanks!
Your article helped me a lot, is there any more related content? Thanks!