Android检测kitkat的USB存储(4.4)
我创build了一个webview应用程序,该应用程序在资产目录中的应用程序中托pipe一个网站。 我想通过插在我的平板usbslot的USBstick更新网站。 我首先尝试了.MEDIA_MOUNTED广播这不适用于我的android 4.4。 片剂。 我search了一个替代品,并find了“MediaScannerConnection”。 这里有几个例子,对我来说没有什么帮助,可以解决我的问题。
我正在寻找一个简单而干净的解决scheme,一个小的解释也会很好,检测一个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实现中,可以从Intent#getData()
获得mount到root的URI。
另外请注意,这不适用于Android 6.0(M)及以上版本。 对于6.0或更高版本,您的代码必须通过以下两种方式之一请求访问USB:
1) UsbManager#requestPermission
2) 意图#ACTION_OPEN_DOCUMENT_TREE作为存储访问框架的一部分
- Android隐藏的ListView滚动条?
- 扩展LifecycleActivity,Activity,ActionbarActivity和AppCompactActivity之间的区别?
- 如何在Android设备上浏览本地主机?
- 检测耳机是否插入Android设备。
- NestedScrollView中的ViewPager
- 如何获得安装的Android应用程序的列表,并select一个运行
- Android,Drawable.createFromStream(是,srcname):第二个参数是什么意思?
- android:Theme.Material.Light需要API级别21(当前最less8)
- 有没有什么办法可以将Eclipse与Gradle集成到Android项目中?