По сути, вам нужно получить файловую систему и получить курсор, в котором хранится информация:
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore;
import android.widget.Toast;
public class CheckIt extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent theIntent = getIntent();
String attachmentFileName = "No file name found";
if (theIntent != null && theIntent.getData() != null) {
Cursor c = getContentResolver().query(
theIntent.getData(), null, null, null, null);
c.moveToFirst();
final int fileNameColumnId = c.getColumnIndex(
MediaStore.MediaColumns.DISPLAY_NAME);
if (fileNameColumnId >= 0)
attachmentFileName = c.getString(fileNameColumnId);
}
Toast.makeText(this, attachmentFileName, Toast.LENGTH_LONG).show();
}
}
В возвращенном курсоре есть еще один столбец - MediaStore.MediaColumns.SIZE. По крайней мере, это то, что я получаю с GMail на своем Desire HD. Просто попробуйте приведенный выше код, открыв письмо в GMail и нажав кнопку предварительного просмотра.
Конечно, не забудьте добавить следующее в раздел действий в файле Manifest.xml (не удаляйте раздел фильтра намерений android.intent.category.LAUNCHER из действия, иначе он не будет доступен для просмотра через панель запуска). ):
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>