本地通知导致 SecurityException
Local notification caused SecurityException
我制作了一个方法,当进度完成加载时发送本地通知,当我构建应用程序时,一切都清楚了,没有任何 errors/warnings 我在发布后收到了 Google 控制台崩溃报告
通知方式如下:
public void notif() {
final int NOTIFICATION_ID = 1;
int icon = getIcon();
String provx = getProv();
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getBaseContext());
Notification notification = mBuilder
.setSmallIcon(icon)
.setVibrate(new long[]{1000, 1000})
.setLights(Color.BLUE, 700, 500)
.setContentTitle("New notification!")
.setStyle(new NotificationCompat.BigTextStyle().bigText(provx))
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
.setContentText(provx)
.build();
NotificationManager nMN = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nMN.notify(NOTIFICATION_ID, notification); //here where I got the error
}
这是崩溃日志:
java.lang.SecurityException:
at android.os.Parcel.readException (Parcel.java:1425)
at android.os.Parcel.readException (Parcel.java:1379)
at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag (INotificationManager.java:246)
at android.app.NotificationManager.notify (NotificationManager.java:135)
at android.app.NotificationManager.notify (NotificationManager.java:111)
at com.dev.days.myapp.Splash.notif (Splash.java:184)
at com.dev.days.myapp.Splash.run (Splash.java:151)
at java.lang.Thread.run (Thread.java:856)
正如@Adam S 上面所建议的那样,这是通过在 manifest
文件
中添加 VIBRATE
权限来简单解决的
<uses-permission android:name="android.permission.VIBRATE" />
我制作了一个方法,当进度完成加载时发送本地通知,当我构建应用程序时,一切都清楚了,没有任何 errors/warnings 我在发布后收到了 Google 控制台崩溃报告
通知方式如下:
public void notif() {
final int NOTIFICATION_ID = 1;
int icon = getIcon();
String provx = getProv();
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getBaseContext());
Notification notification = mBuilder
.setSmallIcon(icon)
.setVibrate(new long[]{1000, 1000})
.setLights(Color.BLUE, 700, 500)
.setContentTitle("New notification!")
.setStyle(new NotificationCompat.BigTextStyle().bigText(provx))
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
.setContentText(provx)
.build();
NotificationManager nMN = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nMN.notify(NOTIFICATION_ID, notification); //here where I got the error
}
这是崩溃日志:
java.lang.SecurityException:
at android.os.Parcel.readException (Parcel.java:1425)
at android.os.Parcel.readException (Parcel.java:1379)
at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag (INotificationManager.java:246)
at android.app.NotificationManager.notify (NotificationManager.java:135)
at android.app.NotificationManager.notify (NotificationManager.java:111)
at com.dev.days.myapp.Splash.notif (Splash.java:184)
at com.dev.days.myapp.Splash.run (Splash.java:151)
at java.lang.Thread.run (Thread.java:856)
正如@Adam S 上面所建议的那样,这是通过在 manifest
文件
VIBRATE
权限来简单解决的
<uses-permission android:name="android.permission.VIBRATE" />