【发布时间】:2016-01-16 19:58:54
【问题描述】:
我正在尝试在 Android 应用中使用 Dropbox Chooser Api 来允许用户从 Dropbox 中选择文件。我能够从片段成功启动 Dropbox 选择器,但在选择文件后,它显示“正在创建链接...”,然后返回片段。我已经重写了 onActivityresult() 方法来获取有关所选文件的信息。但是,不幸的是,onActivityresult() 没有被调用,我无法使用下载管理器下载所选文件。
videos_fragment.java
@Override
public void super.onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == DBX_CHOOSER_REQUEST){
if (resultCode == Activity.RESULT_OK){
DbxChooser.Result result = new DbxChooser.Result(data);
Log.i("main", "Link to selected file: " + result.getLink());
// Handle the result
Toast.makeText(getContext(),"Successful",Toast.LENGTH_LONG).show();
DownloadManager.Request request = new DownloadManager.Request(result.getLink());
request.setDescription("Downloading from App");
request.setTitle("Downloading..");
// in order for this if to run, you must use the android 3.2 to compile your app
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}
// get download service and enqueue file
DownloadManager manager = (DownloadManager) getActivity().getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
}
else {
Toast.makeText(getContext(),"Error connecting Dropbox",Toast.LENGTH_LONG).show();
}
}
else {
super.onActivityResult(requestCode, resultCode, data);
}
}
打开 Dropbox 对话框的代码
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
myView = inflater.inflate(R.layout.videos_layout,container,false);
mChooser = new DbxChooser("APP_KEY");
mchooser_button= (Button)myView.findViewById(R.id.chooser_button);
mchooser_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mChooser.forResultType(DbxChooser.ResultType.DIRECT_LINK).launch(getActivity(),DBX_CHOOSER_REQUEST);
}
});
return myView;
}
【问题讨论】:
-
您可以发布您编写的代码以打开 DropBox 文件选择器对话框吗?
-
@FunkSoulBrother 我已在说明中添加。
-
您应该尝试在连接到计算机的真实设备上运行代码并查看 LogCat 输出以查看是否有任何问题。您是否已向 Manifest 文件添加了所需的权限?您是否尝试过运行 DropBox 示例文件选择器示例并将代码与您的代码进行比较?
-
@logcat 我使用的是保管箱选择器而不是相机意图 + 我的代码中没有 startActivityResult 命令。我搜索了整个 stackoverflow,然后发布了我的问题。
标签: android dropbox android-download-manager