1. ホーム
  2. android

[解決済み] 保護フラグ "appop "と "development "は何に使うのですか?

2022-02-09 02:19:18

質問事項

アプリが要求する権限の種類と範囲を確認するためのテストコードを書いていたところ、最近Androidに2つの新しい保護レベルが追加されたことに気づきました。

によると Android公式ドキュメント は、その <permission> 要素には、次の4つの値のいずれかを指定します。

android:protectionLevel=["normal" | "dangerous" | "signature" | "signatureOrSystem"] となります。

が、気がつくと PermissionInfo クラス(参照 ここで ) には、合計6つの保護レベルのフラグがあります。この2つのレベルはそれぞれSDK16と21で追加されたようですが、ドキュメントには記載されていないようです。

int PROTECTION_FLAG_DEVELOPMENT = 0x20
int PROTECTION_FLAG_APPOP       = 0x40

これらの保護レベルとマニフェストで定義できる保護レベルとは何が違うのでしょうか?

どのように解決するのですか?

その appop パーミッションは、Google が Android 4.3 で導入し、それ以来削除されている App Ops ツールを思い起こさせるものに他なりません。理論的には appop フラグは、テスト中にユーザーが切り替えて、特定のソフトウェアやハードウェアの機能を有効または無効にしたときにアプリがどのように動作するかを確認することができます。

これは、Googleのエンジニアが実際に行ったApp Opsの説明です。

<ブロッククオート

例えば、アプリごとの通知制御、新しい位置情報 UI で位置情報にアクセスしたときの追跡、新しい現在の SMS アプリ制御のいくつかの側面などで現在使用されています。

以下は、記事本文へのリンクです。 https://plus.google.com/+DannyHolyoake/posts/FkfBxA5i3iG