Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Runtime permissions in Android 11
Search
Hiroyuki Kusu
November 27, 2020
Programming
0
390
Runtime permissions in Android 11
Yumemi.apk #2 (
https://yumemi.connpass.com/event/191284/
) の資料
Hiroyuki Kusu
November 27, 2020
Tweet
Share
More Decks by Hiroyuki Kusu
See All by Hiroyuki Kusu
GitHub composite actions
hkusu
2
160
Android の静的解析における SARIF ファイルの活用
hkusu
0
1.2k
CI_でライブラリのバージョンの変化をレポートする.pdf
hkusu
0
190
Maestro を GitHub Actions で動かす 〜Android編〜
hkusu
0
690
Android の CI(GitHub Actions)の改善で、最近やったこと
hkusu
0
450
Tauri Mobile で生成される Android のコードを見てみる
hkusu
0
1k
Custom GitHub Actions を作って Organization 内で共有する
hkusu
1
430
GitHub Actions でユニットテストの結果をレポートする
hkusu
0
2.7k
Android で Multiplatform Settings を使う
hkusu
0
600
Other Decks in Programming
See All in Programming
AWS Application Composerで始める、 サーバーレスなデータ基盤構築 / 20240406-jawsug-hokuriku-shinkansen
kasacchiful
1
260
雑に思考を整理する技術と効能
konifar
58
28k
Front-end application development, Symfony-style(s)
dunglas
2
1.9k
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
8
3.9k
HUIT新歓2024「競技プログラミング、やってみませんか?」
slephy2784
1
260
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
160
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
670
Build Apps for iOS, Android & Desktop in 100% Kotlin With Compose Multiplatform (mDevCamp 2024)
zsmb
0
150
try! Swift Tokyo 2024のLT枠に採択されたプロポーザルを出すときに考えていたこと
ski
0
350
データアナリストが行うDatabricksを活用したETLの自動化事例
shinoa
0
260
コードレビューで学ぶ!Kotlinオブジェクト指向デザインパターン
akkie76
2
190
VS Code をプロダクトにどう取り込むか
onomax
1
340
Featured
See All Featured
Debugging Ruby Performance
tmm1
70
11k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
Embracing the Ebb and Flow
colly
79
4.1k
Code Review Best Practice
trishagee
54
15k
Infographics Made Easy
chrislema
238
18k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
Statistics for Hackers
jakevdp
789
220k
Writing Fast Ruby
sferik
620
60k
A designer walks into a library…
pauljervisheath
199
23k
The Pragmatic Product Professional
lauravandoore
24
5.8k
Imperfection Machines: The Place of Print at Facebook
scottboms
259
12k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
13
1.5k
Transcript
Runtime permissions in Android 11 2020.11.27 YUMEMI.apk #2 Hiroyuki Kusu
( @hkusu_ )
About me
• 1ճ͚ͩͷΞΫηεڐՄΦϓγϣϯ͕ՃʢҐஔใɺϚΠΫɺΧϝϥͷ߹ͷΈʣ • ෳճڋ൱͢Δͱʮࠓޙ֬ೝ͠ͳ͍ʯঢ়ଶͱͳΔ • ݖݶΛࣗಈతʹϦηοτ͢Δઃఆ͕Ճ ΞϓϦͷ targetSdkVersion ʹؔͳ͘ɺAPI Level
30 Ҏ্ͷσόΠεͰ
Ґஔใͷ߹
※ ΞϓϦͷ targetSdkVersion ͕ 30Ҏ্ͷ߹σϑΥϧτͰࣗಈϦηοτ͕ON
ैདྷͲ͓ΓɺػೳΛར༻͢ΔલͰ permission Λ औಘ͢ΔίʔυΛॻ͍͍ͯΕɺͱΓ͋͑ͣେৎͦ͏ɻ
class MainFragment : Fragment(R.layout.main_fragment) { // ... override fun onViewCreated(view:
View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) // FragmentͷੜϑΣʔζͰొ͠ͳ͍ͱΤϥʔʹͳΔͷͰҙ val locationPermission = registerForActivityResult( ActivityResultContracts.RequestPermission() ) { isGranted -> when { // طʹڐՄ͞Ε͍ͯͨ or μΠΞϩά͕දࣔ͞Ε[ΞϓϦͷ༻࣌ͷΈ]·ͨ[ࠓճͷΈ]͕ԡԼ͞Εͨ isGranted -> { // ... } // طʹڋ൱͞Ε͍ͯͨ or μΠΞϩά͕දࣔ͞Ε[ڐՄ͠ͳ͍]͕ԡԼ͞Εͨ else -> { // ... } } } button.setOnClickListener { locationPermission.launch(Manifest.permission.ACCESS_FINE_LOCATION) } ※ ActivityResultContracts androidx.activity ͷ 1.2.0ɺandroidx.fragment ͷ 1.3.0 Ҏ߱Ͱར༻͕Մ ϘλϯΛԡԼͨ͠ΒҐஔใΛར༻ͨ͠ԿΒ͔ͷॲཧΛ࣮ߦ͢Δྫɿ
• ContextCompat.checkSelfPermission() • ݱ࣌Ͱݖݶ͕ڐՄ͞Ε͍ͯΔ͔ • ActivityCompat.shouldShowRequestPermissionRationale() • ʮࠓޙ֬ೝ͠ͳ͍ʯঢ়ଶ͔ • PackageManager#isAutoRevokeWhitelisted()
• ݖݶͷࣗಈϦηοτ͕ONͰ͋Δ͔ • ͨͩ͠৽͍͠APIͳͷͰҎԼͷ߹ͷΈར༻͕Մೳ • compileSdkVersion ͕ 30Ҏ্ • API Level 30Ҏ্ͷσόΠε • Build.VERSION.SDK_INT • σόΠεͷ API Level • 30ະຬैདྷͷpermissionͷ༷ͷ··ͳͷͰUIΛ͚Δ߹ ͨͩ͠ɺϢʔβʹڐՄΛଅ͢ͳΒɺ ͋ͨΓΛར༻ͯ͠ಋઢจݴΛ੍ޚ͠ɺUIΛͨ͠ํ͕Αͦ͞͏ɻ
Thank you ! @hkusu_