2021/06/03

[android] テキストファイルをGoogleドライブに置きたい (2)

前回はファイル共有の設定までだった。
今度は置く方だ。

他のアプリへの単純なデータの送信  |  Android デベロッパー  |  Android Developers
https://developer.android.com/training/sharing/send#send-binary-content

ファイルを置くということであれこれ悩んだのだが、ファイル共有することのできるURIデータを送信する、という考え方でよいのではなかろうか。
ここに載っていた例はテキストコンテンツやバイナリコンテンツで別々に書かれているものの、中を見れば putExtra()で送信したいデータを決め、setType()でデータの種類を教えているだけだと思うのだ。

テキストコンテンツの場合は文字列をそのまま渡しているが、バイナリコンテンツの場合はURIを渡している。だからバイナリコンテンツの送信をまねすれば良かろう。良いはずだ。

 

あれこれ調べながらやっているうちに寝る時間になってしまったじゃないか!
とりあえず、Activityの onCreate()でファイルを作って、ボタンを押したら共有のダイアログ?が出てくるところまで確認した。

01:     fun sendIntent(view: View?) {
02:         val filename = "myfile.txt"
03:         val pathUri: Uri = FileProvider.getUriForFile(
04:             this,
05:             BuildConfig.APPLICATION_ID + ".fileprovider",
06:             File(getFilesDir(), filename)
07:         )
08:         val shareIntent: Intent = Intent().apply {
09:             action = Intent.ACTION_SEND
10:             putExtra(Intent.EXTRA_STREAM, pathUri)
11:             type = "plain/text"
12:         }
13:         startActivity(Intent.createChooser(shareIntent, null))
14:     }

なんで Googleドライブに保存するところまで確認しなかったかというと、エミュレータを使っていて Googleアカウントの設定がされていなかったためだ。

次回は実機でやろう。
それに、これを実行しても logcatには例外が出ていたので、そこも気になる。動いてるけど出ているから、よろしくはないのだろう。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。