나는 안드로이드 응용 프로그램을 작성 중입니다. 이 앱은 Gmail 위에 구축되었습니다. 다른 앱의 파일을 첨부 할 수있는 기능을 추가하고 싶습니다. 이 작업을 수행하는 첫 번째 앱은 맞춤 상자 앱 (상자 SDK로 제작)입니다. 현재 인 텐트를 보내고 Box App에서 활동을 열고 첨부 파일을 선택하여 돌아올 수 있습니다. 그러나 내 Box-SDK 앱에서 항목을 선택하고 나면 Gmail 앱 (또는 의도의 원래 발신자)으로 제대로 되돌릴 수있는 데이터로 변환하는 방법을 모릅니다. 나는 또한 그 데이터를 의도의 창안자에게 보내는 방법을 모른다.Gmail에서 '첨부'하는 방법에 응답 하시겠습니까? 첨부 파일의 의도에 대한 응답
setResult()가 관련되어 있지만, 어디에 넣을 지 잘 모르며, 상자에서 선택한 데이터를 전자 메일 앱으로 옮기는 데 제대로 사용하는 방법을 모르겠습니다.
현재 첨부 파일없이 Gmail로 돌아가서 다운로드가 완료되었다고합니다. 여기
는 코드 내가 현재 가지고 :"다양한 방법에 있습니다 : 페이지에서
https://developer.android.com/reference/android/support/v4/content/FileProvider.html#ServeUri
:
private void onFileSelected(final int resultCode, final Intent data) {
if (Activity.RESULT_OK != resultCode) {
Toast.makeText(this, "fail", Toast.LENGTH_LONG).show();
}
else {
final BoxAndroidFile file = data.getParcelableExtra(FilePickerActivity.EXTRA_BOX_ANDROID_FILE);
AsyncTask<Null, Integer, Null> task = new AsyncTask<Null, Integer, Null>() {
@Override
protected void onPostExecute(Null result) {
Toast.makeText(MainActivity.this, "done downloading", Toast.LENGTH_LONG).show();
// Intent result2 = new Intent();
// result2.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" +));
// setResult(Activity.RESULT_OK, result2);
//// setResult(resultCode, data);
super.onPostExecute(result);
finish();
}
@Override
protected void onPreExecute() {
Toast.makeText(MainActivity.this, "start downloading", Toast.LENGTH_LONG).show();
super.onPreExecute();
}
@Override
protected Null doInBackground(Null... params) {
BoxAndroidClient client = ((HelloWorldApplication) getApplication()).getClient();
try {
File f = new File(Environment.getExternalStorageDirectory(), file.getName());
Intent result2 = new Intent();
result2.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + f.getAbsolutePath()));
setResult(Activity.RESULT_OK, data);
// setResult(resultCode, data);
System.out.println(f.getAbsolutePath());
client.getFilesManager().downloadFile(file.getId(), f, null, null);
}
catch (Exception e) {
}
return null;
}
};
task.execute();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == AUTH_REQUEST) {
onAuthenticated(resultCode, data);
}
else if (requestCode == UPLOAD_REQUEST) {
onFolderSelected(resultCode, data);
}
else if (requestCode == DOWNLOAD_REQUEST) {
onFileSelected(resultCode, data);
}
}
전화 나는 여분의 의도 result2 = 새로운 의도()와 같은 파일 URI를 새로운 의도 한 결과를 설정하여, 그것을 알아 내기 위해 관리 .parse ("file : //"+ f.getAbsol utePath())); getActivity(). setResult (Activity.RESULT_OK, result2); –