怎样判断sd卡扫描完毕

解决方案 »

  1.   

    MediaScannerConnectionClient接口中有一个叫做onScanCompleted的方法。
      

  2.   

        public static boolean isMediaScannerScanning(Context context) {
            boolean result = false;
            Cursor cursor = query(context, MediaStore.getMediaScannerUri(), 
                    new String [] { MediaStore.MEDIA_SCANNER_VOLUME }, null, null, null);
            if (cursor != null) {
                if (cursor.getCount() == 1) {
                    cursor.moveToFirst();
                    result = "external".equals(cursor.getString(0));
                }
                cursor.close(); 
            }         return result;
        }
    楼主试试这个,true的话正常扫描,false已经完成。
      

  3.   

    MediaScannerConnectionClient接口中有一个叫做onScanCompleted的方法。
      

  4.   

    SD扫描完毕会发送一个Broadcast出来android.intent.action.MEDIA_SCANNER_FINISHED注册一个broadcastreceiver处理一下就好。    private BroadcastReceiver mScanListener = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
               .......
            }
        };        IntentFilter f = new IntentFilter();
            f.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED);
            f.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);
            f.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
            f.addDataScheme("file");
            registerReceiver(mScanListener, f);