2016-10-31 11 views
3

アプリケーションのインストール中に、画面オーバーレイのアクセス許可をデフォルトで有効にする方法を教えてください。デフォルトで画面オーバーレイのアクセス許可を有効にする方法

私はいくつかの問題に直面しています。画像をキャプチャする際に、実行時に許可を求めるデバイスが許可されていないと、画面オーバーレイの設定ダイアログが開きます。ユーザーの視点では、なぜダイアログが表示され、何をしているのかわかりません。

オーバーレイ設定画面を開くと、一部のアプリケーションで自動的に画面オーバーレイのアクセス許可が有効になります。

以下、コードを使用します。

if (!Settings.canDrawOverlays(this)) { 
     Intent myIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); 
     startActivityForResult(myIntent, 101); 
} 

このコードは、オーバーレイ設定画面を直接開きます。すべてのアプリケーションのリストを表示します。

私の要件は、特定のアプリケーションのアクセス許可を示しているか、ユーザーとの対話なしでオーバーレイ許可を有効にしています。

needfullを行う...

答えて

0

あなたはユーザーを説明するあなたのダイアログボックスを表示し、許可を求める前に、代わりに画面オーバーレイ権限を有効にする必要はありませんあなたのマニフェスト

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 
+0

私はまた、マニフェストファイルのパーミッションを追加します。 –

0

にコードの下に追加します。なぜあなたは許可を必要とし、許可を受け入れるように要求しますか。ユーザーがnoを選択した場合、許可ダイアログは表示されません。そうでなければ、彼に許可ダイアログを表示します。これは、画面のオーバーレイ許可を避けるのに役立ちます。

1

あなたはOSが6.0以上であるデバイスを使用している場合は、以下に従ってください設定

ゴーステップ - >をアプリのアプリ内 --->再び選択設定アイコン--->を選択します

他のアプリの上にドローを選択し、アプリケーションを選択し、他のアプリの上に描画を可能にあなたは

Android "Screen Overlay Detected" message if user is trying to grant a permission when a notification is showing

0

をpermition他のいくつかの活動の上にあなたのスクリーンを描く許可を得るためにあなたの活動を残す必要があります。それはあなたが避けることのできないものです。

これを行うには、ACTION_MANAGE_OVERLAY_PERMISSIONインテント経由で設定にアクセスする必要があります。ユーザーフレンドリーなアプリケーションをご希望の方は、そのような許可を求める必要がある瞬間に説明が必要な理由を説明するダイアログを開き、要件を受け入れて辞退するためのオプションを提示してください。受け入れたら、インテントを起動し、アクティビティを開始します。

3

in the documentationのように、パッケージ名をインテント内に送信する必要があります。

入力:必要に応じて、テントのデータURIを直接 パッケージ名に特定の管理GUIを起動するアプリケーション パッケージ名を指定することができます。たとえば、「package:com.my.app」と入力します。

ので、このような何かを:

if (!Settings.canDrawOverlays(this)) { 
    Intent myIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); 
    myIntent.setData(Uri.parse("package: " + getPackageName())); 
    startActivityForResult(myIntent, 101); 
} 
+4

'' package: ''をスペース文字なしで使うべきです。そのように: 'myIntent.setData(Uri.parse(" package: "+ getPackageName()));' – comrade

関連する問題