コードをIntent.setDataAndType()
からIntent.putExtra()
に移行していますが、同じ結果が得られません。Intent.putExtra()が間違ったサードパーティのアプリケーションをプロンプトします
私はまた、アンドロイドNのデータを、他のOSレベルとは異なる方法で処理しています。
// coming to this method
final FileType fileType
final File file;
final Intent intent = new Intent(Intent.ACTION_SEND);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
intent.setAction(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.putExtra(Intent.EXTRA_INTENT, FileProvider.getUriForFile(MyApplication.getAppContext(), MyApplication.getAppContext().getApplicationContext().getPackageName() + ".provider", file));
//intent.setDataAndType(FileProvider.getUriForFile(MyApplication.getAppContext(), MyApplication.getAppContext().getApplicationContext().getPackageName() + ".provider", file), fileType.getMimeType());
} else {
intent.putExtra(Intent.EXTRA_INTENT, Uri.fromFile(file));
intent.putExtra(Intent.EXTRA_MIME_TYPES, fileType.getMimeType());
//intent.setDataAndType(Uri.fromFile(file), fileType.getMimeType());
}
startActivity(intent);
問題は、これは関係なく、私が送ったファイルタイプの、間違ったアプリケーションを開くしようとしていることである。
は、ここに私のコードです。 たとえば、PDFファイルを開くためのカレンダーや設定を開きたいとします。
Intent.setDataAndType()
を使用すると、データが正しいアプリケーションに正しく送信されますが、大きなデータセットではandroid.os.TransactionTooLargeException
例外が発生します。
提案がありますか?ありがとうございました。
編集: これは私が達成しようとしているものです。私はネットワーク(txt、html、pdf ...)からファイルをダウンロードし、ファイルをローカルに保存して、そのファイルタイプのデバイスのデフォルトリーダー内でそのファイルを開いて読んでみたい。ユーザーがそのファイルタイプのリーダーを選択していない場合は、アンドロイドのデフォルトのプロンプトが表示され、このファイルを読み取ることができるアプリを選択します。 ユーザーがこのファイルタイプを読み取るアプリを持っていない場合、このデバイスでファイルを開くことができないというメッセージが表示されます。
あなたの所持品と達成したいことを説明して投稿を開始してください。これはかなり曖昧です。まともなご紹介をお願いします。 – greenapps
が完了しました。それが役に立ったら教えてください。 – TooManyEduardos
あなたは 'setDataAndType()'であなたが望むことはできますか?もしそうなら、なぜあなたは代わりに 'putExtra()'を使用しようとしていますか? –