本地通知导致 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" />