Неподдерживаемое вложение - PullRequest
0 голосов
/ 06 февраля 2020
 private void sendPdf(String file) {
//        Uri uri = Uri.fromFile(new File(file));
        Uri uri = FileProvider.getUriForFile(getContext(), BuildConfig.APPLICATION_ID + ".fileprovider", new File(String.valueOf(file)));
        intent = new Intent(Intent.ACTION_SEND);
//        intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION & Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

//        intent.putExtra(Intent.EXTRA_SUBJECT, "Transaction history");

        intent.setType("*/*");
        intent.putExtra(Intent.EXTRA_STREAM, uri); // invitation body

        Intent chooser = Intent.createChooser(intent, "Share with: ");

        List<ResolveInfo> resInfoList = getActivity().getPackageManager().queryIntentActivities(chooser, PackageManager.MATCH_DEFAULT_ONLY);

        for (ResolveInfo resolveInfo : resInfoList) {
            String packageName = resolveInfo.activityInfo.packageName;
            getActivity().grantUriPermission(packageName, uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
        }

        startActivity(chooser);
    }

Я пытаюсь поделиться pdf с помощью WhatsApp / Telegram, но когда я пытаюсь поделиться файлом, но он говорит о неподдерживаемом вложении (Telegram). Кто-нибудь может мне помочь?

РЕДАКТИРОВАТЬ: Я получил эту проблему только для Android 10. Кто-нибудь сталкивался с той же проблемой?

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020

Я использую этот кусок кода для своего собственного приложения.

    Intent mIntent = new Intent(Intent.ACTION_SEND);
    File mFile = new File(mPath);

    if(mFile.exists()) {

        mIntent.setType("application/pdf");
        mIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + mPath));
        mIntent.putExtra(Intent.EXTRA_SUBJECT,
                        "Sharing File...");
        mIntent.putExtra(Intent.EXTRA_TEXT, "Sharing File...");
        startActivity(Intent.createChooser(mIntent, "Share My File"));
        }
0 голосов
/ 06 февраля 2020

у меня сработало, попробуй. Удачи

File outputFile = new File(Environment.getExternalStoragePublicDirectory
    (Environment.DIRECTORY_DOWNLOADS), "path_of_file.pdf");
Uri uri = Uri.fromFile(outputFile);

Intent share = new Intent();
share.setAction(Intent.ACTION_SEND);
share.setType("application/pdf");
share.putExtra(Intent.EXTRA_STREAM, uri);
share.setPackage("org.telegram.messenger");
activity.startActivity(share);   
...