2

Android 11 (ターゲット 30) では、パッケージの表示制限が導入されています。

これらの制限を回避できる QUERY_ALL_PACKAGES を追加し、特定のアプリのみが使用できるようにしました。

このアクセス許可の保護レベルは NORMAL であるため、このアクセス許可をどのように制限するのか疑問に思いました。

ドキュメントでは、彼らは次のように述べています。

今後のポリシーの更新で、Google Play を探して、QUERY_ALL_PACKAGES 権限が必要なアプリのガイドラインを提供してください。

このポリシーの更新がどこにあるのか知っている人はいますか?

4

1 に答える 1

0

QUERY_ALL_PACKAGES パーミッションには通常の保護レベルがあるため、追加しても例外はスローされません。

この許可を強制する方法はqueryUsageStatsUsageStatsManagerインスタンスを呼び出すことです。空のリストが返された場合は、電話の設定で使用状況データへのアクセスを有効にするようユーザーに通知します。

private fun requestPackagePermission() {
        val stats: List<UsageStats> = usageStatsManager
            .queryUsageStats(
                UsageStatsManager.INTERVAL_BEST,
                0,
                System.currentTimeMillis()
            )
        val isEmpty = stats.isEmpty()
        if (isEmpty) {
            // notify user before opening app settings
            startActivity(Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS))
        } else {
            // carry out your work
        }
    }

アクティビティまたはフラグメントでこのメソッドを呼び出しonResume()て、Usage Data Access がオンになり、ユーザーがアプリに戻ったときに、変更を確認するためにメソッドが再度呼び出されるようにします。

于 2021-10-16T16:59:56.787 に答える