大佬教程收集整理的这篇文章主要介绍了如何将Android Open Accessory模式作为服务实现?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
但是,我需要将整个事情作为一项服务来运行.我有一个基本活动,由USB_ACCESSORY_ATTACHED意图启动(即,当连接附件时),并且工作正常.但是,一旦我开始我的服务并在其中运行与我在常规活动中的工作解决方案相同的代码,每当我尝试与附件通信时,我都会收到IOException(“没有这样的设备”)(监控arduino)侧显示USB连接成功).即使我在服务中指定了正确的BroadcastReceiver,在onStartCommand回调方法中注册它,并使用openAccessory()设置通信端点,也会发生这种情况.相关代码如下.
@Override public void onCreate() { Log.d(tag,"ONCREATE"); manager = UsbManager.geTinstance(this); mPermissionIntent = PendingIntent.getBroadcast(this,new Intent( ACTION_USB_PERMISSION),0); // Register broadcastreceiver for filtering accessory events IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION); filter.addAction(UsbManager.ACTION_USB_ACCESSORY_DETACHED); registerReceiver(mUsbReceiver,filter); super.onCreate(); } public int onStartCommand(Intent intent,int flags,int startId) { Log.d(tag,"ONSTARTCOMMAND METHOD ACCESSED"); if (mInputStream != null && mOutputStream != null) { return START_NOT_STICKY; } UsBACcessorY[] accessories = manager.getAccessoryList(); mAccessory = (accessories == null ? null : accessories[0]); if (mAccessory != null) { if (manager.hasPermission(mAccessory)) { openAccessory(); } else { synchronized (mUsbReceiver) { if (!mPermissionrequestPending) { manager.requestPermission(mAccessory,mPermissionIntent); mPermissionrequestPending = true; } } } } else { Log.d(tag,"mAccessory is null"); } return START_NOT_STICKY; }
openAccessory方法:
/** * Open the accessory */ private void openAccessory() { Log.d(tag,"openAccessory: "+mAccessory); mFileDescriptor = manager.openAccessory(mAccessory); if (mFileDescriptor != null) { FileDescriptor fd = mFileDescriptor.getFileDescriptor(); mInputStream = new FileInputStream(fd); mOutputStream = new FiLeoutputStream(fd); Thread thread = new Thread(null,this,"AccessoryThread"); thread.start(); } }
对可能的解决方案有什么想法?
以上是大佬教程为你收集整理的如何将Android Open Accessory模式作为服务实现?全部内容,希望文章能够帮你解决如何将Android Open Accessory模式作为服务实现?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。