軟件版本:android8.1
硬件平臺:展訊
使用自定義的廣播,然後用命令行測試的時候出現如下warning:
1300 D AndroidRuntime: Calling main entry com.android.commands.am.Am
01-01 08:00:36.945 610 1072 E ActivityManager: Sending non-protected broadcast android.intent.action.SHOW_NAVIGATION_BAR from system uid 0 pkg null
01-01 08:00:36.945 610 1072 E ActivityManager: java.lang.Throwable
01-01 08:00:36.945 610 1072 E ActivityManager: at com.android.server.am.ActivityManagerService.checkBroadcastFromSystem(ActivityManagerService.java:18137)
01-01 08:00:36.945 610 1072 E ActivityManager: at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:18704)
01-01 08:00:36.945 610 1072 E ActivityManager: at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:18795)
01-01 08:00:36.945 610 1072 E ActivityManager: at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:499)
01-01 08:00:36.945 610 1072 E ActivityManager: at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2909)
01-01 08:00:36.945 610 1072 E ActivityManager: at android.os.Binder.execTransact(Binder.java:565)
01-01 08:00:36.957 1300 1300 D AndroidRuntime: Shutting down VM
01-01 08:00:37.284 1167 1227 D RKUpdateService: WorkHandler::handleMessage() : To perform 'COMMAND_CHECK_LOCAL_UPDATING'.
01-01 08:00:37.284 1167 1227 D RKUpdateService: getValidFirmwareImageFile() : Target image file path : /data/media/0/update.zip
01-01 08:00:37.284 1167 1227 D RKUpdateService: getValidFirmwareImageFile() : Target image file path : /storage/emulated/0/update.zip
原因:
系統對自定義廣播做了保護限制,對廣播做了保護限定之後,只有一定權限的用戶纔可以使用。否則用一次就會打印一次warning,並且保存異常信息到文件中。
解決方法:
framework/base目錄:
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 45086c0..d8f3a9a 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -495,6 +495,10 @@
<!--for cec-->
<protected-broadcast android:name="com.rockchip.hdmicec.power_status_changed" />
+ <protected-broadcast android:name="android.intent.action.HIDE_NAVIGATION_BAR" />
+ <protected-broadcast android:name="android.intent.action.SHOW_NAVIGATION_BAR" />
+
+
<!-- ====================================================================== -->
<!-- RUNTIME PERMISSIONS -->
<!-- ====================================================================== -->
解決~~~