首页 > 解决方案 > Android PIE 安全异常

问题描述

SecurityException当我将目标版本更改为 28 时,当我尝试通过NotificationManager.notify()from显示通知时开始崩溃FirebaseService。我阅读了 Android 9 的行为更改,但添加FOREGROUND_SERVICE权限对我没有帮助。该问题仅出现在搭载 Android 9 的设备上,但我无法在三星 S10 上重现该问题。

这是日志:

java.lang.SecurityException: 
  at android.os.Parcel.createException (Parcel.java:1966)
  at android.os.Parcel.readException (Parcel.java:1934)
  at android.os.Parcel.readException (Parcel.java:1884)
  at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag (INotificationManager.java:1653)
  at android.app.NotificationManager.notifyAsUser (NotificationManager.java:429)
  at android.app.NotificationManager.notify (NotificationManager.java:379)
  at android.app.NotificationManager.notify (NotificationManager.java:355)
  at com.example.Utils.onNotificationReceived (Utils.java:201)
  at com.example.FirebaseService.onMessageReceived (FirebaseService.java:51)
  at com.google.firebase.messaging.FirebaseMessagingService.zzd (FirebaseMessagingService.java:60)
  at com.google.firebase.iid.zzg.run (zzg.java:4)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
  at com.google.android.gms.common.util.concurrent.zza.run (zza.java:6)
  at java.lang.Thread.run (Thread.java:764)
Caused by: android.os.RemoteException: 
  at com.android.server.am.ActivityManagerService.checkGrantUriPermissionLocked (ActivityManagerService.java:12755)
  at com.android.server.am.ActivityManagerService.checkGrantUriPermission (ActivityManagerService.java:12772)
  at com.android.server.notification.NotificationRecord.visitGrantableUri (NotificationRecord.java:1147)
  at com.android.server.notification.NotificationRecord.calculateGrantableUris (NotificationRecord.java:1123)
  at com.android.server.notification.NotificationRecord.<init> (NotificationRecord.java:208)

清单权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

raw从目录为频道设置声音会不会有问题?

标签: androidandroid-serviceandroid-permissionssecurityexception

解决方案


推荐阅读