壁纸,我正在显示来自数据库的数据,实际上是在SDCARD中
- 首先如果我想从SD卡访问数据我已经放了一些条件
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
它工作正常,现在当我重启设备时,在我的设备启动时,我的壁纸想要访问数据库,所以它将首先检查上述条件,但它将返回 FALSE
可能会在启动ANDROID OS一段时间后安装SDCARD ...
所以任何人都可以建议我如何解决这个问题,因为我需要将大量的数据库放在SDCARD上
答案 0 :(得分:0)
可能是在启动ANDROID OS一段时间后安装了SDCARD
是的,所以注册action.MEDIA_MOUNTED
BroadcastReceiver以在安装SD卡时进行广播。
首先在AndroidManifest.xml中注册BroadcastReceiver:
<receiver
android:enabled="true"
android:exported="false"
android:name=".ExternalStorageInfoReceiver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_MOUNTED"/>
</intent-filter>
</receiver>
在ExternalStorageInfoReceiver中,你可以在onReceive方法中完成你的工作:
public class ExternalStorageInfoReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//change wallpaper here....
}
}
答案 1 :(得分:0)
如果您的应用程序存储在外部存储上,那么您应该提供以下意图过滤器,
<receiver android:name=".YourBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>