スクリーンショット_2019-03-19_9

「Android Q Beta1 」というタイトルでOtemachi.apk #02でお話してきました #otemachi_apk

2019/03/18にOtemachi.apk #02 にて

「Android Q Beta1」

というタイトルでお話してきました。

Android Q Beta1が発表され、ドキュメントを読むいい機会でした。
ドキュメントを読んでみて、個人的に気になったことに触れています。

以下、発表に使った資料になります。

資料の書き起こしもありますので、資料内のリンクなどを参照したい方はこちらをみてください。


資料に書かなかったことなど🍭

Role取得のリクエストにはいくつか条件が必要

別に難しいことではないのですが、Roleごとに必要なものをAndroidManifestに定義する必要があります。
ROLE_MUSICをリクエストするには、以下のようにいくつかcategoryを定義する必要があります。

<manifest>
   <!-- Use the old permission for devices running Android 9 (API level 28) or
        lower. -->
   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
       android:maxSdkVersion="28" />
   <!-- Use the new "read audio" permission for Android Q. -->
   <uses-permission
       android:name="android.permission.READ_MEDIA_AUDIO" />
   <application>
       <activity android:name=".MainActivity">
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category
                  android:name="android.intent.category.LAUNCHER" />
               <!-- You must include these categories for your app
                    to be considered for the ROLE_MUSIC role. -->
               <category android:name="android.intent.category.APP_MUSIC" />
               <category android:name="android.intent.category.DEFAULT" />
          </intent-filter>
       </activity>
   </application>
</manifest>

詳しくはドキュメントを読んでください。
https://developer.android.com/preview/features/roles

ドキュメントにのってないRoleの存在

ドキュメントにのっていないRoleが存在するみたいです。
以下の画像はQのエミュレータのRole一覧の画面です。

Assist appとかEmergency appなどのRoleはドキュメントにも記載がなかったです。
ただ adb shell dumpsys role でdumpしてみると、やっぱドキュメントに記載がないRoleが存在するので、今後のアップデートで随時増えていくのかもしれないです。

パーミッションがあってもできないことはRoleが必要?

Scoped storageでパーミッションがあっても他のアプリが作成したファイルの変更ができない仕様があります。
それを変更するには、特定のRoleが必要という感じらしいです。
Privacyを強化することで、パーミッションがあっても行えない操作が出てきたんですね。
各Roleもユースケースに応じた特権を得られるだけで、なんでもできるようになるというわけではないので、Privacy設計的にはいい感じなのかもしれないです。

Clipboardのアクセス制限

clipboardへのアクセス制限が行われたみたいですが、そもそも今まで制限が緩かったのか...という感じではあります。

noteのAndroidアプリが影響しそうなところ

ざーっと見た感じではなさそう?
non-SDK interfaceのリストが更新されているので、そこのチェックくらいかと思います。
Scoped storageによる外部ストレージの仕様変更も、noteはStorage Access Frameworkを使ってメディアファイルにアクセスしてるので、ほぼ影響はなさそうです。
Beta2が出たら再度チェックし直す予定です。


サポートしてもらうことで、キンパツは大好物のミスドが食べられます!よろしくお願いします!