我创建了一个webview应用程序,它在assets-directory中的应用程序中托管一个网站。 我想通过插入我的平板电脑usbslot的USBstick更新网站。 我首先尝试使用.MEDIA_MOUNTED广播,这对我的android 4.4无效。片剂。 我搜索了另一种选择并找到了“MediaScannerConnection”。 这里有几个例子对解决我的问题没什么帮助。
我正在寻找一个简单而干净的解决方案,一点点解释也很好,以检测是否连接了USB存储器以及之后执行某些代码的机会。 如何让这个USB检查一直运行是一个问题。我假设我必须把它放在OnResume方法中,但我不太舒服。
答案 0 :(得分:3)
请为您的BroadcastReceiver和AndroidManifest.xml发布代码。
清单应该看起来像
<application>
<!--- ... --->
<receiver android:name=".UsbBroadcastReceiver"
android:exported="true"
android:enabled="true" >
<intent-filter>
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<action android:name="android.intent.action.MEDIA_UNMOUNTED" />
<data android:scheme="file" />
</intent-filter>
</receiver>
</application>
请注意data
标记,它经常被忽略。
在onReceive实现中,可以从Intent#getData()
获取mount到root的URI。
另请注意,这不适用于Android 6.0(M)及更高版本。对于6.0及更高版本,您的代码必须通过以下两种方式之一请求访问USB:
1)UsbManager#requestPermission
2)Intent#ACTION_OPEN_DOCUMENT_TREE作为Storage Access Framework
的一部分