我試圖創建一個文件選取器來連接雲存儲服務。我無法將文件附加到其他應用程序,甚至Gmail也能成功取回我的「活動」結果,並根據我設置的URI/clipdata顯示適當的縮略圖。發送電子郵件時,Gmail附件響應Intent.ACTION_GET_CONTENT失敗
問題是,當你真的去發送電子郵件,Gmail通知用戶「無法發送附件」,併發送沒有附件的電子郵件。
我不知道我在做什麼錯。我嘗試將URI設置爲Intent.setData()以及使用URI並設置Intent.setClipData()。另外,我嘗試明確包含FLAG_GRANT_READ_URI_PERMISSION的標誌。這些東西都不能解決問題。
任何人如果有任何想法可能會出錯,請加以注意。其他雲供應商在通過此流程附加內容時似乎沒有問題,所以我只是不知道我做錯了什麼。
我的代碼大致看起來現在如下,仍然不會與Gmail工作:
Intent result = new Intent();
result.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
result.setData(uri);
if (getActivity().getIntent().getBooleanExtra(Intent.EXTRA_ALLOW_MULTIPLE, false)) {
String mime = Utils.getMimeType(document);
result.setClipData(new ClipData(document.getSimpleName(), new String[]{mime}, new ClipData.Item(uri)));
result.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
result.putExtra(Intent.EXTRA_STREAM, uri);
}
getActivity().setResult(Activity.RESULT_OK, result);
getActivity().finish();
'uri'的價值是什麼?它是否指向你編寫的'ContentProvider',你有'android:grantUriPermissions'集合? – CommonsWare 2014-10-16 22:34:17