有没有办法以编程方式禁用单个程序的通知?我想建立一个安装在我的设备上的所有程序的列表,然后检查那些我不想接收通知的程序,然后点击一个按钮来禁用/启用它们。
我正在尝试构建一个应用程序,该应用程序允许我通过单击按钮启用部分/所有通知,并通过单击按钮或在预定时间段后重新启用它们。安卓支持吗?NotificationManager 似乎没有这些属性。
有没有办法以编程方式禁用单个程序的通知?我想建立一个安装在我的设备上的所有程序的列表,然后检查那些我不想接收通知的程序,然后点击一个按钮来禁用/启用它们。
我正在尝试构建一个应用程序,该应用程序允许我通过单击按钮启用部分/所有通知,并通过单击按钮或在预定时间段后重新启用它们。安卓支持吗?NotificationManager 似乎没有这些属性。
您可以通过共享偏好来做到这一点。
您可以在共享首选项中设置通知设置,稍后如果您收到任何消息,您可以决定是否显示通知。
下面的代码片段用于 ReactNative,但您也可以将其用于本机应用程序
/**
* Toggle Notification Setting
*
* @param showNotifcation
*/
@ReactMethod
public void toggleNotification(boolean showNotifcation) {
if (showNotifcation) {
Toast.makeText(reactAppContext, "Notification Enabled", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(reactAppContext, "Notification Disabled", Toast.LENGTH_SHORT).show();
}
getPrefernceHelperInstace().setBoolean(reactAppContext, ENABLE_NOTIFICATION, showNotifcation);
}
稍后在消息服务类中
public class ReactFireBaseMessagingService extends FirebaseMessagingService {
private NotificationUtils notificationUtils;
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
//Check if Notn are Enabled?
if (getPrefernceHelperInstace().getBoolean(getApplicationContext(),
ENABLE_NOTIFICATION, true)) {
//Show Notification
} else {
Log.e(TAG, "ReactFireBaseMessagingService: Notifications Are Disabled by User");
}
}
请参阅代码片段
不,你不能,也许在有根设备上,但这是另一个故事......