Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Androidアプリ間で巨大テキストの受け渡しをするには?

解決したいこと

Androidアプリ間で巨大テキストの受け渡しができない

発生している問題・エラー

Java側アプリが落ちるまたは、
テキスト保存した一時ファイルを別アプリから読めない

自分で試したこと

自作の2つのアプリ間(1つはJava, もう1つはxamarin C#)で、
Intentを介して、データを受け渡そうと思っています。
Java → Xamarin → Javaとデータを渡して戻すものです。
戻るデータサイズがテキストで1MB程度あります。

データサイズを例えば試しに64文字等、少くすると、Intent.getStringExtraを使って
正しくデータを受け取れています。
大きい場合はJava側アプリが落ちるようです。
おそらくデータサイズの上限があると考えています。

そこで、一旦ファイルに保存して、共有URIを発行して
ファイルを読もうと考えてました。
URIは、cotent://com.company.app.provider/subdir/filename.txt
をテキストで渡して、URI.parseでURIに戻しています。
getContentResolver().openInputStream(uri);
でURIを読もうとすると、java.io.FileNotFoundException が発生してしまいます。

Xamarin側では、
AndroidManifestに、android:grantUriPermissions="true"を追加
同じく、android.support.FILE_PROVIDER_PATHSに、"@xml/file_paths"を指定
file_paths.xmlに、<files-path name="subdir" path="subdir/" />を追加
intent.AddFlags(ActivityFlags.GrantReadUriPermission); を呼ぶ
としています。他に足らない設定などありますでしょうか?
(データは、このアプリ専用で、他のアプリからは読ませたくはありません)
また、もっと良い方法、一般的な方法などがありましたらご教示ください。

0

No Answers yet.

Your answer might help someone💌