0

マニフェストで次のインテント フィルターを定義しました。これにより、ブラウザーや電子メールの添付ファイルからダウンロードした .ips ファイルを開くことができます。

<intent-filter
                android:icon='@drawable/ic_launcher'
                android:label="@string/quick_patcher_label"
                android:priority='1'>
            <action android:name="android.intent.action.VIEW" />
            <action android:name="android.intent.action.EDIT" />
            <action android:name="android.intent.action.PICK" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:mimeType="*/*" />
            <data android:pathPattern="*.ips" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data android:mimeType="*/*" android:scheme="http" android:host="*" android:pathPattern=".*\\.ips" />
            <data android:mimeType="*/*" android:scheme="https" android:host="*" android:pathPattern=".*\\.ips" />
        </intent-filter>

ファイル名として「false」になったこの質問の回答の一部を試しましたが、これも試しました。このインテント フィルターで開いたファイルのファイル パスをアクティビティ内から取得するにはどうすればよいですか?

編集:これは別の質問で見つかりました。ダウンロードから開くと機能しますが、電子メールから開くと NullPointerException が発生します。その理由を知っている人はいますか?

public String getRealPathFromURI(Uri contentUri) {
    String[] proj = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(contentUri, proj, null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}
4

2 に答える 2

1

このインテント フィルターで開いたファイルのファイル パスをアクティビティ内から取得するにはどうすればよいですか?

「ファイルパス」がない可能性があります。を使用getIntent().getData()してデータを取得しUriます。次に、 と を使用ContentResolverして、その からデータのopenInputStream()を取得します。InputStreamUri

于 2013-08-06T17:32:34.083 に答える
0

メールからは、STREAM ではなく EXTRA_TEXT を受信して​​いる可能性があります。したがって、STREAM はヌルになります。

メールがファイルとして存在することはありません。それらをファイルに保存できます。しかし、それらはもはや電子メールではありません。

ですから、次に「メールがメールではないのはいつですか?」と尋ねられたとき、あなたは答えを知り、質問者はあなたの優れた知恵に頭を下げて、あなたの弟子になるように頼むでしょう。しかし、私は脱線します...

于 2014-01-04T23:11:14.930 に答える