Mega Code Archive

 
Categories / Android / Media
 

Using MediaScannerConnection

package app.test; import java.io.File; import android.app.Activity; import android.content.Intent; import android.media.MediaScannerConnection; import android.media.MediaScannerConnection.MediaScannerConnectionClient; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.Toast; public class Test extends Activity implements MediaScannerConnectionClient {   private EditText editText = null;     private String filename = null;     private MediaScannerConnection conn;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         editText = (EditText)findViewById(R.id.fileName);     }     public void startScan(View view) {         if(conn!=null) {             conn.disconnect();         }                  filename = editText.getText().toString();         File fileCheck = new File(filename);         if(fileCheck.isFile()) {             conn = new MediaScannerConnection(this, this);             conn.connect();         }         else {             Toast.makeText(this,                 "That file does not exist",                 Toast.LENGTH_SHORT).show();         }     }     @Override     public void onMediaScannerConnected() {         conn.scanFile(filename, null);     }     @Override     public void onScanCompleted(String path, Uri uri) {         try {             if (uri != null) {                 Intent intent = new Intent(Intent.ACTION_VIEW);                 intent.setData(uri);                 startActivity(intent);             }         } finally {             conn.disconnect();             conn = null;         }      } } //main.xml <?xml version="1.0" encoding="utf-8"?> <!-- This file is /res/layout/main.xml --> <LinearLayout   xmlns:android="http://schemas.android.com/apk/res/android"   android:orientation="vertical"   android:layout_width="fill_parent"  android:layout_height="wrap_content">   <EditText android:id="@+id/fileName"  android:hint="Enter new filename"   android:layout_width="fill_parent"  android:layout_height="wrap_content" />        <Button android:id="@+id/scanBtn"  android:text="Add file"     android:layout_width="wrap_content"  android:layout_height="wrap_content"     android:onClick="startScan" />      </LinearLayout>