FileUriEXposedException в общем доступе к скриншоту макета - PullRequest
0 голосов
/ 07 февраля 2019

Эй, я пытаюсь поделиться снимком экрана макета.он работает очень хорошо во всех версиях, которые меньше, чем Oreo, но когда я пытаюсь поделиться на Oreo, он дает FileUriExposedException.Пожалуйста, если кто-то знает об этой проблеме, пожалуйста, решите ее как можно скорее.

Вот мой код

 public Bitmap takeScreenshot() {
    View rootView = (FrameLayout)findViewById(R.id.frame_layout).getRootView();
    rootView.setDrawingCacheEnabled(true);
    return rootView.getDrawingCache();
}

public void saveBitmap(Bitmap bitmap) {
     imagepath1 = new File(Environment.getExternalStorageDirectory() + "/screenshot.png");
    FileOutputStream fos;
    try {
        fos = new FileOutputStream(imagepath1);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
        fos.flush();
        fos.close();
    } catch (FileNotFoundException e) {
        Log.e("GREC", e.getMessage(), e);
    } catch (IOException e) {
        Log.e("GREC", e.getMessage(), e);
    }


}
private void shareIt() {
    try{
    Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
    Uri uri = Uri.fromFile(imagepath1);
    sharingIntent.setType("image/*");
    String share_text = "*Create, Share, Download* Valentine Frames and spread love on this \nValentine\uD83D\uDE18\uD83D\uDE18 for free...." +
            "\n*Download Now:-* https://play.google.com/store/apps/details?id=technoapps4.valentineframes2019";
    sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, share_text);
    sharingIntent.putExtra(Intent.EXTRA_STREAM, uri);
        sharingIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

        startActivity(Intent.createChooser(sharingIntent, "Share via"));}
    catch ( Exception e)
    {
        Toast.makeText(this, ""+e, Toast.LENGTH_SHORT).show();
    }

1 Ответ

0 голосов
/ 07 февраля 2019

AFAIK общий доступ к файлам путем совместного использования их путей больше не разрешен, начиная с oreo.Я получил эту проблему некоторое время назад.

Мое решение состояло в том, чтобы поделиться контентом файла с поставщиком контента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...