2

デバイスネイティブギャラリーソースコード(grepコードから)を使用したギャラリー画像を表示するアプリケーションを開発しています。他のデバイスではすべて問題なく動作していますが、ジェリー ビーン バージョンのデバイスで問題に直面しています。問題を掘り下げた後、コードで 1 つの問題が見つかりました。それは、メディア スキャナーのブロードキャスト イベントが発生していないことです。

コード スニペットは次のとおりです。

private void onResume()
{

    IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_MOUNTED);
    intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
    intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED);
    intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);
    intentFilter.addAction(Intent.ACTION_MEDIA_EJECT);
    intentFilter.addDataScheme("file");

    BroadcastReceiver mReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (action.equals(Intent.ACTION_MEDIA_MOUNTED)) {

            } else if (action.equals(Intent.ACTION_MEDIA_UNMOUNTED)) {
                // SD card unavailable
                rebake(true, false);
            } else if (action.equals(Intent.ACTION_MEDIA_SCANNER_STARTED)) {
                rebake(false, true);
            } else if (action.equals(Intent.ACTION_MEDIA_SCANNER_FINISHED)) {
                rebake(false, false);
            } else if (action.equals(Intent.ACTION_MEDIA_EJECT)) {
                rebake(true, false);
            }
        }
    };
    registerReceiver(mReceiver, intentFilter);
}
4

0 に答える 0