2016-09-22 3 views
0

SYSTEM_ALERT_WINDOW 권한을 사용하는 응용 프로그램에서 작업하고 있습니다. 매니페스트에 권한을 추가했습니다.SYSTEM_ALERT_WINDOW 옵션이 회색으로 표시됩니다 (변경할 수 없음)

제 활동에서 런타임에 권한을 요청하기 위해 다음 코드를 추가했습니다.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    Button button = (Button) findViewById(R.id.button); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
       Intent myIntent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName())); 
       startActivityForResult(myIntent, 5469); 
      } 
     } 
    }); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    switch (requestCode) { 
     case 5469: { 
      Toast.makeText(this,"Permission Granted!",Toast.LENGTH_SHORT).show(); 
      return; 
     } 
    } 
} 

단, "그리기 다른 애플 리케이션을 통해"설정 페이지가 열립니다 같이 '스위치 버튼'는 허가 (클릭 할 수 없습니다) 회색으로 표시됩니다 있도록.

enter image description here

코드 매니페스트에 대한 : 아래

는 스크린 샷입니다 제가 옵션이 회색으로 표시되어 잘못하고있는 무슨

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.graphics.unlockbrtest"> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".SettingsActivity" 
     android:label="Settings" 
     android:theme="@style/AppTheme.NoActionBar" /> 

    <receiver 
     android:name=".UnlockReceiver" 
     android:enabled="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.USER_PRESENT" /> 
     </intent-filter> 
    </receiver> 

    <activity 
     android:name=".FloatingActivity" 
     android:theme="@android:style/Theme.Dialog" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

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

</application> 

? 미리 감사드립니다.

+0

질문을 편집하고 목록을 게시하십시오. – CommonsWare

+0

매니페스트가 추가되었습니다. –

답변

3

<uses-permission> 요소를 요소 외부에있는 <manifest>의 직계 하위 요소로 이동하십시오.

+0

작동! 정말 감사합니다! –