技術/Android/PermissionExamples (v6)
技術 / Android / PermissionExamples (v6)
id: 997 所有者: msakamoto-sf
作成日: 2011-07-10 18:19:33
カテゴリ: Android
AndroidManifest.xmlでの"<permission>"と"android:permission"属性の使用例+メモ。
サンプルコード
bitbucketにてMercurialで公開:
- https://bitbucket.org/msakamoto_sf/androidpermissionsamples
- "PermissionTest1" : Activity, BroadcastReceiver, Service, ContentProviderを用意しているアプリ。
- "PermissionTest2" : PermissionTest1の各コンポーネントを呼び出すアプリ。AndroidManifest.xmlで必要な"<uses-permission>"を定義済み。PermissionTest1と同じ証明書で署名する。
- "PermissionTest3" : PermissionTest2と内容は同じだが、PermissionTest1,2と異なる証明書で署名する。
結果
詳細:
全体傾向:
- android:exported="false"の非公開は呼べない。
- android:exported省略時は、IntentFilterが無ければ非公開、IntenFilterが有れば公開扱い。
- ReceiverについてはIntentFilter有りのexported無しが非公開扱いになっており、これだけ予想と異なっていた。
- Permissionがある場合は、上記の判断 AND Permissionのレベルに応じた判定となる。
- PermissionTest2ではSignatureレベルの公開扱いは呼べる、PermissionTest3ではSignatureレベルは全て呼べない。
ContentProviderについて:
- API Level 8 ではexported属性の指定が無視され、公開扱いになってしまう。
参考資料
- Security and Permissions | Android Developers
ContentProviderとpermissionの参考資料:
- コンテントプロバイダを公開しない方法 - haruserのめもちょ
- ContentProviderでアプリケーションのデータを共有する その1 - プログラミング雑記
- ContentProviderでデータを共有する その2 - プログラミング雑記
- Taosoftware: Android ContentProviderのexport指定が使えない
- Y.A.M の 雑記帳: Android SearchManager 検索ボックスを使うぜ!
- ContentProvider で特定のアプリにのみ利用を許可する - おともだち革命
プレーンテキスト形式でダウンロード
現在のバージョン : 6
更新者: msakamoto-sf
更新日: 2011-11-25 19:21:36
md5:acb9a5904b1795c87dd0c79f5d631439
sha1:c0aa97287023afbb22c8802ef87082c036567292