2016-10-12 99 views
1

我嘗試共享我下載的文件。我把這個文件放在Ti.Filesystem.externalStorageDirectory。該文件被正確保存,因爲我可以在ImageView.image中顯示它。使用android intent與appcelerator共享文件

下面是我用它來啓動的Android份額意圖代碼: (顯然你不能使用file://方案與​​Android 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的處理本身的文件路徑,所以它是沒有必要用替換文件內容
  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);