Android получает прикрепленное имя файла из приложения Gmail - PullRequest
3 голосов
/ 17 мая 2011

Мне нужно получить имя файла содержимого из приложения Gmail.

я получаю контент, похожий на

Содержание: //gmail-ls/messages/mymailid%40gmail.com/4/attachments/0.1/BEST/false

я вижу, что некоторые приложения получают имена файлов, например это приложение

Пожалуйста, помогите об этом.

Заранее спасибо.

Ответы [ 2 ]

10 голосов
/ 25 мая 2011

По сути, вам нужно получить файловую систему и получить курсор, в котором хранится информация:

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>
0 голосов
/ 24 мая 2011

Что вам нужно сделать, это зарегистрироваться для различных типов пантомимы.Примерно так:

<intent-filter>
<action name="android.intent.action.VIEW">
<category name="android.intent.category.DEFAULT">
<data mimetype="text/xml">
</intent-filter>

Тогда Android будет указывать ваше приложение в качестве опции при попытке открыть вложения из Gmail.Затем оно запустит ваше приложение с намерением, которое даст вам URI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...