Android >> Abrir un fichero usando las aplicaciones instaladas en Android

Lanzamos un Intent con la acción Intent.ACTION_GET_CONTENT y el tipo file/*, de esta manera podremos abrir cualquier fichero que tengamos en nuestro dispositivo Android usando un administrador de archivos instalado, como por ejemplo ASTRO o ES File Explorer.

Para descargar el proyecto completo puedes visitar mi GitHub.

Imagen

MainActivity.java

package com.amatellanes.android.examples;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

	private static final int ABRIRFICHERO_RESULT_CODE = 1;

	private Button btnAbrir;
	private TextView txtInfo;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		btnAbrir = (Button) findViewById(R.id.btnAbrir);
		txtInfo = (TextView) findViewById(R.id.txtInfo);

		btnAbrir.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {
		Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
		intent.setType("file/*");
		startActivityForResult(intent, ABRIRFICHERO_RESULT_CODE);
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		switch (requestCode) {
		case ABRIRFICHERO_RESULT_CODE:
			if (resultCode == RESULT_OK) {

				// Mostramos por pantalla la ruta del archivo seleccionado.
				String ruta = data.getData().getPath();
				txtInfo.setText(ruta);
			}
		}
	}
}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btnAbrir"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/btn_texto" />

    <TextView
        android:id="@+id/txtInfo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>
Etiquetado ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: