使用 usb-serial-for-android 库在 Android 9 上出现 USB 权限问题

问题描述 投票:0回答:1

StackOverflow 社区!

我在通过运行 Android 9 的 Odroid N2 板上的 RS485 端口使用设备时遇到问题。我使用 USB/RS485 适配器和 usb-serial-for-android 库与设备进行通信Modbus RTU 协议。

我在 Android 9 上的 Unity 应用程序中获取 USB 权限时遇到问题。尝试连接到设备时,我收到错误“USB_PERMISSION returned”和异常“java.lang.SecurityException:用户未授予权限”到设备。”

这是我已经完成的:

  1. 修改了清单并添加了所有必要的权限。

     <?xml version="1.0" encoding="utf-8"?>
    


     <supports-screens
         android:smallScreens="true"
         android:normalScreens="true"
         android:largeScreens="true"
         android:xlargeScreens="true"
         android:anyDensity="true"/>
     <application
         android:theme="@style/UnityThemeSelector"
         android:icon="@drawable/app_icon"
         android:label="@string/app_name">
         <activity android:name="com.unity3d.player.UnityPlayerActivity"
                   android:label="@string/app_name">
             <intent-filter>
                 <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
                 <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.HOME" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
             <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
         </activity>
     </application>
    
  2. 确保应用程序具有超级用户权限。

  3. 在开发者选项中启用USB调试模式。

  4. 调整设备权限(允许读写)。 i've changed device rights

  5. 使用 usb-serial-for-android 库以及相应的 Java 插件进行集成。 (我正在使用此代码USB串行驱动程序Java插件在Unity Android构建中无法工作

尽管我竭尽全力,请求使用 USB 设备权限的弹出窗口并未出现。 Android 似乎拒绝使用 USB 设备的权限。如何克服此问题并获得在 Android 9 上的 Unity 应用程序中与 USB 设备交互所需的权限?

我将不胜感激任何对此问题的指导或解决方案。谢谢!

java c# android unity-game-engine android-permissions
1个回答
0
投票

好吧,这个解决方案让我有点惊讶。我尝试使用 /dev/ttyS0 端口,因为我的设备一打开就向我显示了它。但 odroid 论坛的人建议我没有安装 ftdi 驱动程序。所以他们是对的。

按照以下步骤检查您是否有此驱动程序:

  1. 输入此命令:
    $ adb remount
    $ adb shell

    vi /vendor/etc/init/hw/init.odroid.board.rc `

© www.soinside.com 2019 - 2024. All rights reserved.