2012-02-15 1 views
0

У меня есть приложение, которое автоматически запускается через BroadcastReceiver и устанавливается как рабочий стол на Android 2.3.3. API10 на HTC Desire HD.Воспроизвести видео после запуска с sdcard

Приложение должно воспроизводить видео повторно сразу после запуска, но по мере того, как sdcard не готов, он убивает приложение с сообщением об ошибке принудительного закрытия, которое не исчезает.

По крайней мере, я думаю, это из-за SDCard.

В фоновом режиме рабочий стол перезапускается, но сообщение об ошибке не исчезает, это не проблема, если он исчезнет через несколько секунд, но он будет еще больше, если он вообще не появится. .

Вы можете мне помочь? спасибо!

Редактировать # 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

у вас есть решение для этого?

Во-первых, вы не должны как «autostarting через BroadcastReceiver» и «установить в качестве домашнего экрана». Достаточно, желательно, последнего.

После запуска активности он может проверить Environment, чтобы узнать, готово ли внешнее хранилище. Если нет, он может зарегистрировать приемник для ACTION_MEDIA_MOUNTED, чтобы узнать, когда будет подготовлено внешнее хранилище. Как только он будет готов - и только в этот момент - он может попытаться воспроизвести видео.

+0

Привет, мне нужна автозагрузка и замена рабочего стола, поэтому пользователи не имеют доступа к устройству и не могут манипулировать им. (приложение для киоска). Я попытался дождаться sdcard через код, который я буду обновлять в первом сообщении. – antion

+0

@antion: приложение для киоска должно работать как обычный домашний экран, но помните, что любой человек может удалить ваше приложение, если перезагрузка в безопасном режиме. – CommonsWare

+0

ах нормально, что рабочий стол запускается автоматически в любом случае - это то, что вы предлагаете? geez я попробую, может быть, он решает все мои проблемы;) – antion