我创建了一个 webview 应用程序,它在资产目录中的应用程序内托管一个网站。
我想通过插入我的平板电脑 USB 插槽的 U 盘来更新网站。
我首先尝试使用 .MEDIA_MOUNTED 广播,该广播不适用于我的 android 4.4。药片。
我搜索了替代方案并找到了“MediaScannerConnection”。
这里有几个例子,但对解决我的问题没有多大帮助。
我正在寻找一个简单干净的解决方案,并且有一些解释也很好,以检测 USB 存储是否已连接以及之后执行一些代码的机会。
另外,如何让这个USB检查一直运行也是一个问题。我认为我必须将其放入 OnResume 方法中,但我不太确定。
请发布您的 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 实现中,可以从以下位置获取挂载根的 URIIntent#getData()
.
另请注意,这不适用于 Android 6.0 (M) 及更高版本。对于 6.0 及更高版本,您的代码必须通过以下两种方式之一请求访问 USB:
1) UsbManager#requestPermission https://developer.android.com/reference/android/hardware/usb/UsbManager.html#requestPermission(android.hardware.usb.UsbDevice,%20android.app.PendingIntent)
2) 意图#ACTION_OPEN_DOCUMENT_TREE https://developer.android.com/reference/android/content/Intent.html#ACTION_OPEN_DOCUMENT_TREE作为...的一部分存储访问框架 https://developer.android.com/guide/topics/providers/document-provider.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)