2012-02-15 170 views
0

我有一個應用程序,它是通過BroadcastReceiver自動啓動並設置爲Android 2.3.3上的主屏幕。 HTC Desire HD上的API10。從SD卡啓動後播放視頻

該應用程序應該在開始後重復播放視頻,但由於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; 
} 

回答

2

你有一個解決方案?

首先,你不應該需要「通過廣播接收器。自動啓動」和「設置爲一個主屏幕」。一個應該就夠了,最好是後者。

活動啓動後,它可以檢查Environment以查看外部存儲是否準備就緒。如果沒有,它可以註冊一個接收器ACTION_MEDIA_MOUNTED以瞭解外部存儲何時準備就緒。一旦準備就緒 - 只有在這一點上 - 它才能嘗試播放視頻。

+0

嗨,我需要自動啓動和主屏幕更換,以便用戶無法訪問該設備,並不能操縱它。 (它是一個自助服務終端應用程序)。我試圖通過我將在第一篇文章中更新的代碼等待SD卡。 – antion 2012-02-15 20:06:38

+0

@antion:一個自助服務終端應用程序應該只是一個替換主屏幕,但請記住任何人都可以刪除您的應用程序,如果在安全模式下重新啓動。 – CommonsWare 2012-02-15 20:09:39

+0

啊好吧主屏幕自動啓動無論如何是你的建議? geez我會嘗試,也許它解決了我所有的問題;) – antion 2012-02-15 20:13:39