gpt4 book ai didi

android - 应用未在通知访问设置 Android 中列出

转载 作者:行者123 更新时间:2023-11-29 23:18:01 30 4
gpt4 key购买 nike

我正在创建一个应用程序来访问一些通知,下面是我的 AndroidManifest.xml 文件。我安装了我的应用程序,但是当我转到设备的通知访问设置时,我看不到我的应用程序列在那里,谁能帮我解决这个问题

<application
android:name=".MyApplication"
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">

<service
android:name="com.example.myapp.otp.MyService"
android:label="@string/service_name"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
<intent-filter>
<action android:name="android.service.
notification.NotificationListenerService" />
</intent-filter>

</service>
</application>

这是 MyService.class :

public class MyService extends NotificationListenerService {

@Override
public void onNotificationPosted(StatusBarNotification sbn) {
Notification mNotification = sbn.getNotification();
if (mNotification != null) {
Bundle extras = mNotification.extras;
Intent intent = new Intent(MainActivity.INTENT_ACTION_NOTIFICATION);
intent.putExtras(extras);
sendBroadcast(intent);

}
}

@Override
public void onNotificationRemoved(StatusBarNotification sbn) {

}
}

最佳答案

如果你使用22以上的API,首先要获得运行时权限

if (Build.VERSION.SDK_INT > 22) {
requestPermissions(new String[]{Manifest.permission
.BIND_NOTIFICATION_LISTENER_SERVICE}, 1001);
}

您将在 onRequestPermissionsResult 中获得上述权限的响应

然后在您的 Activity 中询问用户是否允许您的应用通过获取通知监听器组件来访问通知

Set<String> listnerSet = NotificationManagerCompat.getEnabledListenerPackages(this);
boolean haveAccess = false;
for (String sd : listnerSet) {
if (sd.equals("your -- package -- name")) {
haveAccess = true;
}
}
if (!haveAccess) {
startActivity(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS));
}

关于android - 应用未在通知访问设置 Android 中列出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54977816/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com