programmer/android media scanner ocsoosoo 2013. 7. 16. 19:19 public void startMediaScanner(){ String mFileName = getFileName(); sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.fromFile(new File(mFileName)))); //sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory()))); } public BroadcastReceiver mMediaScanReceiver=null; @Override public void onResume() { super.onResume(); IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_SCANNER_FINISHED); filter.addDataScheme("file"); mMediaScanReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_MEDIA_SCANNER_FINISHED)) { getView().post(new Runnable(){ @Override public void run() { updateButton(); } }); } } }; registerReceiver(mMediaScanReceiver, filter); updateButton(); } @Override public void onPause() { if(mMediaScanReceiver != null){ unregisterReceiver(mMediaScanReceiver); mMediaScanReceiver = null; } super.onPause(); } private void updateButton(){ if (isFileExisting()) { getView().findViewById(R.id.button1).setEnabled(true); } else { getView().findViewById(R.id.button1).setEnabled(false); } } private boolean isFileExisting() { boolean fileExist = false; String fileExt = ".txt"; Uri uri = MediaStore.Files.getContentUri("external"); Cursor c = getActivity().getContentResolver().query(uri, new String[] { MediaStore.MediaColumns._ID, MediaStore.MediaColumns.DATA }, MediaStore.MediaColumns.DATA + " like '%." + fileExt+ "'", null, null); if(c != null){ int count = c.getCount(); c.close(); c = null; fileExist = (count > 0); } if(!fileExist){ File f = new File(Environment.getExternalStorageDirectory()+"mydir"); File[] files = f.listFiles(); if(files != null && files.length > 0) { for (int i = 0; i < files.length; i++) { String curfilename = files[i].getName(); if (curfilename.endsWith(fileExt)) { fileExist = true; break; } } } } return fileExist; } 저작자표시 비영리 변경금지 (새창열림)