私は現在、外部ストレージから読み取るライブ壁紙を開発しています。デバイスが起動しているとき、ストレージの準備が整う前にライブ壁紙が起動される可能性があると思います。特に定期的なエラーチェックを行う場合。他の人が問題を報告していて、これが理由だと思います。外部ストレージがデバイスに即座にマウントされているようで、エラーチェックを強制する方法がわからないため、これをテストできないようです。だから私の最初の質問は、ライブ壁紙を起動する前に、システムが実際にBOOT_COMPLETEDインテントを実行するかどうかです。
そうでない場合、外部ストレージの準備が整うのを待つ適切な方法は何ですか。アプリの冒頭でこんな感じで呼ぼうと思っています
public void waitForExternalStorage()
{
while(Environment.getExternalStorageState().equals(Environment.MEDIA_CHECKING))
{
try { Thread.sleep(1000L); }
catch(InterruptedException e) { e.printStackTrace(); }
}
}
起動時にMEDIA_REMOVED->MEDIA_UNMOUNTED->MEDIA_CHECKING(オプション)-> MEDIA_READYになる場合に備えて、他のケースをチェックする必要がありますか?