[英]java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.hardware.usb.action.USB_STATE
I am trying to make an apk to install in a device and manage usb state. 我正在尝试使apk安装在设备中并管理USB状态。
apk sends broadcast to device like... apk将广播发送到设备,例如...
Intent intent = new Intent(ACTION_USB_STATE);
sendBroadcast(intent);
In AndroidManifest.xml I stated permission part.. 在AndroidManifest.xml中,我声明了权限部分。
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
but when error occours even though i already stated permission. 但是,即使我已经表示同意,但错误仍然存在时。
log is.... 日志是...。
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
I have no idea what i've done wrong.. 我不知道我做错了什么..
Any clues will help. 任何线索都会有所帮助。
Thank you. 谢谢。
You can find this declaration in framework/base/core/res/AndroidManifest.xml 您可以在framework / base / core / res / AndroidManifest.xml中找到此声明
This broadcast is in this section: 此广播在此部分中:
24 <!-- ================================================ -->
25 <!-- Special broadcasts that only the system can send -->
26 <!-- ================================================ -->
106 <protected-broadcast android:name="android.hardware.usb.action.USB_STATE" />
I believe you can understand this. 我相信你能理解。 You must be generating your own firmware to broadcast this intent. 您必须生成自己的固件才能广播此意图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.