平板电脑可以为自己的目的实施OTG,但阻止应用程序使用它吗?

时间:2018-03-03 22:05:46

标签: android usb-otg

我是android编程新手,我的项目需要serial communication arduino board。我开始通过导入ArduinoUSBsource code来构建我的第一个项目。

在此代码中,我使用android device中的OTG modearduino board作为slave连接。它实现了pseudo serial device。 我很容易在communicate上成功wiko smartphone (android 5.1),但我无法在ezeepad 785 tablet running android 4.1.1上运行。

我最初认为tablet不支持OTG,但事实并非如此,因为如果我通过{memory stick连接了tablet {1}},我可以看到文件中的文件。

然而,在我的OTG cable上,当我第一次wiko phone connect时,我在连接上获得arduino board“打开dialog这个ArduinoUSB?“,我的usb device永远不会发生这种情况。

为了调查,我在代码中添加了tablet语句,以显示在printout的连接上激活了哪些方法。

再次,在我arduino board wiko phone上的screen上,我发现broadcast messagereceived VID arduino board code tablet等等 当我在broadcast message上运行相同的arduino board时,没有任何反应。没有installed连接USB OTG的证据。

我从play store获得了arduino board wiko phone检查器应用程序,此应用再次显示tablet上的tablet已连接,并且没有任何关联在partial OTG

memory stick是否可能实现仅支持wiko phone的{​​{1}}函数,甚至将其隐藏到另一个应用程序?对于我的memory stick,如果我连接VID,我可以阅读screen上的code感谢我在{{1}中添加的额外打印件}}。这不会发生在tablet

我在wit's结束......

2 个答案:

答案 0 :(得分:0)

只是为了说清楚:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.user.someApp">

    <uses-feature
        android:name="android.hardware.usb.host"
        android:required="true" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:theme="@style/Theme.AppCompat.Light.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


        <service
            android:name=".UsbService"
            android:enabled="true" />



    </application>

</manifest>

答案 1 :(得分:0)

TheEngineer,感谢你花时间检查我的问题。

我的清单是:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hariharan.arduinousb" >
<uses-feature android:name="android.hardware.usb.host" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.hariharan.arduinousb.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
        </intent-filter>

        <meta-data
            android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
            android:resource="@xml/device_filter" />
    </activity>
</application>

</manifest>

如你所见: 在uses-feature中,缺少.required参数。我加了。 / service块也丢失了。我尝试添加它,但得到了“未解析的类引用”错误。在我下载的项目的.zip中(见上面的链接),这个陈述不存在。

但是,在此更正之后,行为是相同的:在API 22上检测到USB设备,而不是在API 16上检测到。