ユーザーはGoogleビジョンAPIを使用して特定の無線ネットワークに接続し、ssidを含むQRコードをスキャンできるアプリを開発しています。 Wi-Fiネットワークをスキャンするには、ユーザーに場所の許可を与えるように要求する必要があります。これは、設定に行って手動で場所のアクセス許可を有効にするとうまくいきますが、実行時にアクセス許可を要求するときに、ユーザーがタップを有効にしてScreen Overlay
のアクセス許可を有効にするためにコンテキスト切り替えが必要な第2ダイアログが表示されます。私は他のアプリを引き継ぐわけではなく、手動で場所の許可を有効にしても問題はありません。では、なぜこのパーミッションダイアログがポップアップしていますか?未使用の画面オーバーレイ検出されたアクセス許可ダイアログ
Androidがこの許可を求めている理由が分からないため、投稿するコードが不明です。私は、ネットワーク変更要求に必要な3つの許可の要求を含めました。
final int permissionCheck = ContextCompat.checkSelfPermission(mActivity, Manifest.permission.CAMERA);
final int locationPermissionCheck = ContextCompat.checkSelfPermission(mActivity, Manifest.permission.ACCESS_COARSE_LOCATION);
final int wifiPermissionCheck = ContextCompat.checkSelfPermission(mActivity, Manifest.permission.CHANGE_WIFI_STATE);
final int granted = PackageManager.PERMISSION_GRANTED;
if ((permissionCheck != granted) || (locationPermissionCheck != granted) || (wifiPermissionCheck != granted)) {
ActivityCompat.requestPermissions(mActivity, new String[]{
Manifest.permission.CAMERA,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.CHANGE_WIFI_STATE
}, 0);
} else {
cameraSource.start(cameraView.getHolder());
}
更新
それをトリップそのだけではなく、場所の許可をオンにします。すべての許可要求に同じ動作が発生しています。
周りを見て回った後、私が使っているライブラリのドキュメントにこのアクセス許可の言及がありません。また、設定で場所を手動で有効にして画面のオーバーレイの権限を変更しないとアプリが完璧に機能する理由を説明しません。 – Lonergan6275