gpt4 book ai didi

android - java.lang.SecurityException : Permission Denial: not allowed to send broadcast android. 硬件.usb.action.USB_STATE

转载 作者:太空狗 更新时间:2023-10-29 16:20:41 24 4
gpt4 key购买 nike

我正在尝试制作一个 apk 以安装在设备中并管理 usb 状态。

apk 向设备发送广播,例如...

Intent intent = new Intent(ACTION_USB_STATE);
sendBroadcast(intent);

在 AndroidManifest.xml 中我声明了权限部分..

<uses-permission android:name="android.permission.BROADCAST_STICKY" />

但是即使我已经声明了许可,还是会出现错误。

日志是....

W/ActivityManager(  850): Permission Denial: not allowed to send broadcast android.hardware.usb.action.USB_STATE from pid=16082, uid=10109
E/AndroidRuntime(16082): FATAL EXCEPTION: main
E/AndroidRuntime(16082): java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.hardware.usb.action.USB_STATE from pid=16082, uid=10109
E/AndroidRuntime(16082): at android.os.Parcel.readException(Parcel.java:1425)
E/AndroidRuntime(16082): at android.os.Parcel.readException(Parcel.java:1379)
E/AndroidRuntime(16082): at android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:2098)
E/AndroidRuntime(16082): at android.app.ContextImpl.sendBroadcast(ContextImpl.java:1003)
E/AndroidRuntime(16082): at android.content.ContextWrapper.sendBroadcast(ContextWrapper.java:312)
E/AndroidRuntime(16082): at com.example.usb_mode_change.USBModeSettingActivity$1.onClick(USBModeSettingActivity.java:43)
E/AndroidRuntime(16082): at android.view.View.performClick(View.java:4101)
E/AndroidRuntime(16082): at android.view.View$PerformClick.run(View.java:17082)
E/AndroidRuntime(16082): at android.os.Handler.handleCallback(Handler.java:615)
E/AndroidRuntime(16082): at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(16082): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(16082): at android.app.ActivityThread.main(ActivityThread.java:4911)
E/AndroidRuntime(16082): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(16082): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(16082): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
E/AndroidRuntime(16082): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
E/AndroidRuntime(16082): at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 850): Force finishing activity com.example.usb_mode_change/.USBModeSettingActivity

我不知道我做错了什么..

任何线索都会有所帮助。

谢谢。

最佳答案

你可以在 framework/base/core/res/AndroidManifest.xml 中找到这个声明

这个广播在这个部分:

  24     <!-- ================================================ -->
25 <!-- Special broadcasts that only the system can send -->
26 <!-- ================================================ -->

106 <protected-broadcast android:name="android.hardware.usb.action.USB_STATE" />

我相信你能理解这一点。您必须生成自己的固件才能广播此 Intent 。

关于android - java.lang.SecurityException : Permission Denial: not allowed to send broadcast android. 硬件.usb.action.USB_STATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15782292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com