打开dev下的设备节点失败导致android.os.DeadObjectException
DumbolfManagerService为自己在framwork添加的服务,/dev/mgpio是控制gpio的设备节点
app主要代码
dumbolfManager = (DumbolfManager)getSystemService(Context.DUMBOLF_SERVICE);
dumbolfManager.setGpioStatus(925,true);
HAL层c文件主要代码
if ((fd=open("/dev/mgpio",O_RDWR)) < 0) {
SERR("Open Device /dev/mgpio failed [%s]\n",strerror(errno));
exit(1);
} else {
SERR("Open Device successed.\r\n");
}
if(ioctl(fd,value, pin)<0) {
SERR("ioctl err!!\n");
}
运行是提示如下错误信息,每次运行系统就会重启。
I/DumbolfManagerService( 1271): setGPIOStatus, gpioNo = 925 status = 1
E/huangxin( 1271): set_gpio_status:251 Open Device /dev/mgpio failed [Permission denied]
E/huangxin( 1271):
E/installd( 392): eof
E/installd( 392): failed to read size
I/installd( 392): closing connection
I/lowmemorykiller( 366): ActivityManager disconnected
I/lowmemorykiller( 366): Closing Activity Manager data connection
W/slim_daemon( 480): [NDK] handleEvent: Error event fd=33 mask=00000009
I/ServiceManager( 367): service 'batterystats' died
I/slim_daemon( 480): [SLIM] slim_ProviderConfigure: Updated available providers for service 0: 00000001.
I/slim_daemon( 480): [SLIM] slim_ProviderConfigure: Updated available providers for service 2: 00000001.
I/slim_daemon( 480): [SLIM] slim_ProviderConfigure: Updated available providers for service 13: 00000001.
I/slim_daemon( 480): [SLIM] slim_ProviderConfigure: Updated available providers for service 14: 00000001.
E/DumbolfManager( 4780): RemoteException
E/DumbolfManager( 4780): android.os.DeadObjectException
E/DumbolfManager( 4780): at android.os.BinderProxy.transactNative(Native Method)
E/DumbolfManager( 4780): at android.os.BinderProxy.transact(Binder.java:496)
E/DumbolfManager( 4780): at android.hardware.IDumbolfManager$Stub$Proxy.setGpioStatus(IDumbolfManager.java:187)
E/DumbolfManager( 4780): at android.hardware.DumbolfManager.setGpioStatus(DumbolfManager.java:55)
E/DumbolfManager( 4780): at com.example.mytest.MainActivity.onClick(MainActivity.java:69)
E/DumbolfManager( 4780): at android.view.View.performClick(View.java:4781)
E/DumbolfManager( 4780): at android.view.View$PerformClick.run(View.java:19874)
E/DumbolfManager( 4780): at android.os.Handler.handleCallback(Handler.java:739)
E/DumbolfManager( 4780): at android.os.Handler.dispatchMessage(Handler.java:95)
E/DumbolfManager( 4780): at android.os.Looper.loop(Looper.java:135)
E/DumbolfManager( 4780): at android.app.ActivityThread.main(ActivityThread.java:5254)
E/DumbolfManager( 4780): at java.lang.reflect.Method.invoke(Native Method)
E/DumbolfManager( 4780): at java.lang.reflect.Method.invoke(Method.java:372)
E/DumbolfManager( 4780): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
E/DumbolfManager( 4780): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)
W/Sensors ( 3196): sensorservice died [0xb72fb490]
W/Sensors ( 480): sensorservice died [0xb8a39a48]
W/AudioFlinger( 391): power manager service died !!!
W/AudioFlinger( 391): power manager service died !!!
W/AudioFlinger( 391): power manager service died !!!