Воспроизвести видео после запуска с SDCard - PullRequest
0 голосов
/ 15 февраля 2012

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

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

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

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

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

edit # 1: проверяет, готова ли sdcard.мне нужен только доступ для чтения ..

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;
}

1 Ответ

2 голосов
/ 15 февраля 2012

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

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

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

...