Отказано в разрешении на вложение gmail android

0

Вопрос

Когда я нажимаю кнопку, я хочу отправить файл json внутри устройства по почте. Когда я переключаюсь на сторону Gmail, я получаю сообщение об ошибке "отказано в разрешении на вложение". Как я могу решить эту проблему?

манифест:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

мой код;


 sendgmailButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String filepath = "/data/data/com.example.newgen/files/jsonexample.json";


                        Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
                        emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                        emailIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
                        emailIntent.setType("application/json");
                         emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]
                                {"[email protected]"});
                        emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
                                "Test Subject");
                        emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,
                                "go on read the emails");
               
                        emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+ filepath));


        
                        startActivity(Intent.createChooser(emailIntent, "Send mail..."));


            }
        });


android android-intent gmail java
2021-11-24 06:47:21
1

Лучший ответ

0

Потому что приложение электронной почты не имеет разрешения на доступ к файлу в вашей структуре каталогов. И это то, что вы делаете - запускаете другое приложение и передаете имя файла. Для этого вам нужно использовать файлообменник, см. https://developer.android.com/reference/androidx/core/content/FileProvider

2021-11-24 06:51:53

Спасибо. Я решил проблему с FiloProvider
Muratcan Yıldız

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................