Android 选择文件drom dropbox选择器后,OnActivityResult()不工作

Android 选择文件drom dropbox选择器后,OnActivityResult()不工作,android,dropbox,android-download-manager,Android,Dropbox,Android Download Manager,我正在尝试使用android应用程序中的Dropbox Chooser Api,允许用户从Dropbox中选择文件。我能够从片段中成功启动Dropbox选择器,但在选择文件后,它显示“Creating link…”,然后返回到片段。我已重写onActivityresult()方法以获取有关所选文件的信息。但不幸的是,onActivityresult()未被调用,我无法使用下载管理器下载所选文件 视频\u fragment.java @Override public void supe

我正在尝试使用android应用程序中的Dropbox Chooser Api,允许用户从Dropbox中选择文件。我能够从片段中成功启动Dropbox选择器,但在选择文件后,它显示“Creating link…”,然后返回到片段。我已重写onActivityresult()方法以获取有关所选文件的信息。但不幸的是,onActivityresult()未被调用,我无法使用下载管理器下载所选文件

视频\u 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;
}
您必须将
添加到清单文件(取自)

如果你计划下载文件,你应该考虑将它们写到哪里,并按照//P>添加适当的权限。 祝你好运

您必须将
添加到清单文件(取自)

如果你计划下载文件,你应该考虑将它们写到哪里,并按照//P>添加适当的权限。


祝你好运

终于解决了这个问题


我所需要做的就是在mainactivity类中而不是在片段java中编写ActivityResult方法。

最终解决了这个问题


我需要做的就是在mainactivity类中而不是在fragment java中编写ActivityResult方法。

你能发布你为打开DropBox文件选择器对话框而编写的代码吗?@FunkSoulBrother我在描述中添加了。可能的重复代码应该在连接到计算机的真实设备上运行代码,并查看日志输出,以查看是否存在任何问题。您是否已将所需的权限添加到清单文件?您是否尝试运行DropBox示例文件选择器示例并将代码与您的代码进行比较?@logcat我使用的是DropBox选择器而不是camera intent+我的代码中没有startActivityResult命令。我搜索了整个stackoverflow,然后发布了我的问题。你能发布你为打开DropBox文件选择器对话框而编写的代码吗?@FunkSoulBrother我在描述中添加了。可能重复的代码应该在连接到计算机的真实设备上运行,并查看LogCat输出,以查看是否有问题您是否已将所需的权限添加到清单文件?您是否尝试运行DropBox示例文件选择器示例并将代码与您的代码进行比较?@logcat我使用的是DropBox选择器而不是camera intent+我的代码中没有startActivityResult命令。我搜索了整个stackoverflow,然后发布了我的问题。我猜您遵循了DropBox开发者支持网站上的说明,因此我建议您在其他设备上尝试代码,尝试新的API_密钥,并检查可能导致DropBox运行问题的依赖项。我猜您遵循了DropBox开发者支持网站上的说明,因此,我建议在另一台设备上尝试该代码,尝试一个新的API_密钥,并检查可能导致DropBox运行问题的依赖项。