ユーザーが Google Vision API を使用して特定の Wi-Fi ネットワークに接続し、ssid を含む QR コードをスキャンできるようにするアプリを開発しています。Wi-Fi ネットワークをスキャンするには、ユーザーに位置情報の許可を求める必要があります。これは、設定に移動して場所のアクセス許可を手動で有効にするとすべて正常に機能しますが、実行時にアクセス許可を要求するときに、ユーザーが [有効にする] をタップすると、2 つ目のダイアログがポップアップし、アクセス許可Screen Overlay Detected
を有効にするにはコンテキスト スイッチが必要になりますScreen Overlay
。私は他のアプリを上書きしておらず、位置情報の許可を手動で有効にしても問題はありません。では、なぜこの許可ダイアログが表示されるのでしょうか?
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());
}
アップデート
それをつまずかせるのは、位置情報の許可だけではないことがわかりました。許可要求はすべて同じ動作をしています。