我有一个通过BroadcastReceiver自动启动的应用程序,并在Android 2.3.3上设置为主屏幕。 HTC Desire HD上的API10。
应用程序应该在启动后立即重复播放视频,但由于SD卡尚未就绪,因此会使用强制关闭错误消息杀死该应用程序,该消息不会消失。
至少我认为这是因为SD卡。
在后台,主屏幕重新启动,但错误消息不会消失,如果它会在几秒钟之后消失就没问题,但如果它根本不会出现则会更大。
你可以帮帮我吗? 谢谢!编辑#1: 这将检查SD卡是否准备就绪。我只需要读取权限..
static public boolean hasStorage(boolean requireWriteAccess) {
String state = Environment.getExternalStorageState();
Log.v("tomi", "storage state is " + state);
if (Environment.MEDIA_MOUNTED.equals(state)) {
if (requireWriteAccess) {
boolean writable = checkFsWritable();
Log.v("tomi", "storage writable is " + writable);
return writable;
} else {
return true;
}
} else if (!requireWriteAccess && Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
return true;
}
return false;
}
答案 0 :(得分:2)
你有解决方案吗?
首先,您不需要两者"通过BroadcastReceiver自动启动"和"设置为主屏幕"。一个应该足够,最好是后者。
活动启动后,可以检查Environment
以查看外部存储是否准备就绪。如果没有,它可以为ACTION_MEDIA_MOUNTED
注册接收器,以找出外部存储何时准备就绪。一旦准备好 - 只有在那一点 - 它可以尝试播放视频。