我一直在寻找解决方案,但是一直失败,我不知道为什么!我正在尝试创建一个用于在Android信息亭模式下显示通知的应用程序的启动(因为AndroidManagement API在信息亭中时会关闭状态栏和通知,因此我与需要呼叫铃警报才能显示的护理之家合作)。 / p>
我正处于访问“允许通过其他应用显示”的障碍。我的权限检查代码是;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
boolean settingsCanDraw = Settings.canDrawOverlays(MainActivity.this);
if (!settingsCanDraw)
{
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
intent.setData(Uri.parse("package:" + getPackageName()));
this.startActivityForResult(intent, 5469);
} ....... blah
的onActivityResult为
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 5469: {
Toast.makeText(this,"Permission Granted!",Toast.LENGTH_SHORT).show();
return;
}
}
}
我的清单文件具有以下内容(我尝试过混合使用权限,方法是删除其中的一部分并保留所有权限,但结果相同)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.pcsnotificationbridge" >
<uses-permission android:name="android.permission.ACTION_MANAGE_OVERLAY_PERMISSION" />
<uses-permission android:name="android.permission.TYPE_APPLICATION_OVERLAY"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW "/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning"
android:fullBackupContent="true">
<activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="com.example.pcsnotificationbridge.NLService"
android:label="@string/app_name"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService" />
</intent-filter>
</service>
</application>
每当我运行该应用程序时,都会显示以下选项为灰色-有人可以帮忙:)
答案 0 :(得分:-1)
您的SYSTEM_ALERT_WINDOW权限声明中有多余的空间: “ android.permission.SYSTEM_ALERT_WINDOW”
您应该将其替换为: “ android.permission.SYSTEM_ALERT_WINDOW”
但是,此权限仅对API级别<23的设备有效。 通过添加以下权限,我可以在Android 7.1上使用灰色切换来解决此问题:
<uses-permission-sdk-23 android:name="android.permission.SYSTEM_ALERT_WINDOW" />