我正在开发一个应用程序,我希望主线程等到SD卡安装完毕,如果尚未安装。我该怎么做?我在考虑这样的事情:
while (!android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {
// Wait
}
但我担心当有人没有SD卡时会出现问题。另外,我不知道如何告诉它等到外部存储状态改变。如果你们中的一些人能告诉我正确的方法,那将对我有很大的帮助。
答案 0 :(得分:0)
您可以实现BroadcastReceiver并等待以下操作:
android.intent.action.MEDIA_MOUNTED
android.intent.action.MEDIA_EJECT
<强>的AndroidManifest.xml 强>:
<receiver
android:name=".MyReceiver"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.MEDIA_EJECT" />
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<data android:scheme="file" />
</intent-filter>
</receiver>
<强> MyReceiver.java 强>:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if ((Intent.ACTION_MEDIA_EJECT.equals(intent.getAction())
|| Intent.ACTION_MEDIA_MOUNTED.equals(intent.getAction()))
&& Environment.isExternalStorageRemovable()) {
// Handle the SD card state changed
}
}
}