1

我正在使用以下代码在 android 应用程序中共享内容,该代码适用于 android 7.+,但不适用于 marshmallow(6.0.1)。请建议。

shareNow.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
           Intent sharingIntent = new Intent(Intent.ACTION_SEND);
           sharingIntent.setType("text/plain");
           String shareBody = Constants.SHARE_TEXT + refer_code;
           sharingIntent.putExtra(Intent.EXTRA_SUBJECT, "Share");
           sharingIntent.putExtra(Intent.EXTRA_TEXT, shareBody);
           startActivity(Intent.createChooser(sharingIntent, "Share via"));
            } catch (Exception e) {
                ShowToastMsg.showToast(getActivity(), "Error Occured");
            }
        }
    });
4

2 回答 2

2

这可能是由于运行时权限。Android marshmallow需要运行时权限才能访问存储在设备中的图像文件。因此,您需要在代码中授予运行时权限。

因此,请确保您提供了所需的权限,例如READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE,因此在提出请求之前要小心。如果您不想在此处处理权限部分,则可以这样做。

// Provide read access
shareIntent.setData(uriToImage);
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

有一个如何使用新功能的详细指南。 关联

请访问 https://developer.android.com/training/permissions/requesting.html

注意:您也可以使用直接分享这里是教程。

于 2017-12-23T06:33:03.000 回答
0

我曾经遇到过这个问题,

我添加了标志FLAG_ACTIVITY_NEW_TASK并且效果很好。

希望它对你有用。

注意:我在签署 apk 后收到了该错误,所以您可能需要在签署 apk 后检查。

于 2017-12-23T07:12:17.590 回答