2016-10-12 11 views
1

ダウンロードしたファイルを共有しようとしています。私はそのファイルをTi.Filesystem.externalStorageDirectoryに入れました。ファイルはImageView.imageで表示できるので、正しく保存されています。アンドロイドインテントを使用してappceleratorとファイルを共有する

ここで私はアンドロイドのシェアの意図を開始するために使用するコードです: (どうやらあなたがファイルを使用することはできません://アンドロイドAPIとのスキーム24はこの記事を参照してください:stackoverflow)を

filePath = filePath.replace('file','content'); 
var intent = Ti.Android.createIntent({ 
    action: Ti.Android.ACTION_SEND, 
}); 
intent.putExtraUri(Ti.Android.EXTRA_STREAM, filePath); 
$.FileList.activity.startActivity(intent); 

さはどうなりますが、共有ダイアログが開き、私が共有したいアプリを選択しますが、次に共有することはないという通知が表示されます。失敗した通知の

スクリーンショット: screenshot of failed notification

答えて

0

は実際にはかなり簡単だった:

  1. Appceleratorのは、それ自体でfilePathにを処理し、それがあるので、交換する必要はありませんファイル内容
  2. インテントには型パラメータが必要です。

作業コードは次のようになります。

var intent = Ti.Android.createIntent({ 
    action: Ti.Android.ACTION_SEND, 
    type: '*/*' 
}); 
intent.putExtraUri(Ti.Android.EXTRA_STREAM, filePath); 
$.FileList.activity.startActivity(intent); 
1

これを試してみてください。

var Blob = $.container.toImage(); 
var file = Ti.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory, 'image_1.png'); 
f.write(Blob); 


/// NOT HERE --filePath = filePath.replace('file','content'); 
var intent = Ti.Android.createIntent({ 
    action: Ti.Android.ACTION_SEND 
}); 
intent.putExtraUri(Ti.Android.EXTRA_STREAM, f.filePath); 
////$.FileList.activity.startActivity(intent); 
Ti.Android.currentActivity.startActivity(intent); 
関連する問題