Problem with image sharing intent in Kotlin











up vote
-2
down vote

favorite












here I'm sharing the image intent. The image is in a drawable folder.
Giving this excpetion.
android.os.FileUriExposedException
:



file:///storage/emulated/0/Android/data/com.example.arkkhano.myapplication/cache/myImage.png exposed beyond app through ClipData.Item.getUri()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1958)
at android.net.Uri.checkFileUriExposed(Uri.java:2356)


The code:



sharing_img.setOnClickListener {
val myDrawable = tv_view_home2e.drawable
val bitmap = (myDrawable as BitmapDrawable).bitmap
val file = File(externalCacheDir,"myImage.png")
val fOut = FileOutputStream(file)
bitmap.compress(Bitmap.CompressFormat.PNG,90,fOut)
fOut.flush()
fOut.close()
file.setReadable(true,false)
val intent = Intent(Intent.ACTION_SEND)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file))
intent.type = "image/png"
intent.putExtra(Intent.EXTRA_SUBJECT,"Subject here")
startActivity(Intent.createChooser(intent,"Share to "))
}









share|improve this question




















  • 1




    Possible duplicate of FileUriExposedException using Android 7
    – 2Dee
    yesterday










  • Check this answer about file providers: stackoverflow.com/a/50503528/1574250
    – André Sousa
    yesterday










  • looks like you didn't spend more than 3 seconds searching for the answer.
    – Vladyslav Matviienko
    yesterday















up vote
-2
down vote

favorite












here I'm sharing the image intent. The image is in a drawable folder.
Giving this excpetion.
android.os.FileUriExposedException
:



file:///storage/emulated/0/Android/data/com.example.arkkhano.myapplication/cache/myImage.png exposed beyond app through ClipData.Item.getUri()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1958)
at android.net.Uri.checkFileUriExposed(Uri.java:2356)


The code:



sharing_img.setOnClickListener {
val myDrawable = tv_view_home2e.drawable
val bitmap = (myDrawable as BitmapDrawable).bitmap
val file = File(externalCacheDir,"myImage.png")
val fOut = FileOutputStream(file)
bitmap.compress(Bitmap.CompressFormat.PNG,90,fOut)
fOut.flush()
fOut.close()
file.setReadable(true,false)
val intent = Intent(Intent.ACTION_SEND)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file))
intent.type = "image/png"
intent.putExtra(Intent.EXTRA_SUBJECT,"Subject here")
startActivity(Intent.createChooser(intent,"Share to "))
}









share|improve this question




















  • 1




    Possible duplicate of FileUriExposedException using Android 7
    – 2Dee
    yesterday










  • Check this answer about file providers: stackoverflow.com/a/50503528/1574250
    – André Sousa
    yesterday










  • looks like you didn't spend more than 3 seconds searching for the answer.
    – Vladyslav Matviienko
    yesterday













up vote
-2
down vote

favorite









up vote
-2
down vote

favorite











here I'm sharing the image intent. The image is in a drawable folder.
Giving this excpetion.
android.os.FileUriExposedException
:



file:///storage/emulated/0/Android/data/com.example.arkkhano.myapplication/cache/myImage.png exposed beyond app through ClipData.Item.getUri()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1958)
at android.net.Uri.checkFileUriExposed(Uri.java:2356)


The code:



sharing_img.setOnClickListener {
val myDrawable = tv_view_home2e.drawable
val bitmap = (myDrawable as BitmapDrawable).bitmap
val file = File(externalCacheDir,"myImage.png")
val fOut = FileOutputStream(file)
bitmap.compress(Bitmap.CompressFormat.PNG,90,fOut)
fOut.flush()
fOut.close()
file.setReadable(true,false)
val intent = Intent(Intent.ACTION_SEND)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file))
intent.type = "image/png"
intent.putExtra(Intent.EXTRA_SUBJECT,"Subject here")
startActivity(Intent.createChooser(intent,"Share to "))
}









share|improve this question















here I'm sharing the image intent. The image is in a drawable folder.
Giving this excpetion.
android.os.FileUriExposedException
:



file:///storage/emulated/0/Android/data/com.example.arkkhano.myapplication/cache/myImage.png exposed beyond app through ClipData.Item.getUri()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1958)
at android.net.Uri.checkFileUriExposed(Uri.java:2356)


The code:



sharing_img.setOnClickListener {
val myDrawable = tv_view_home2e.drawable
val bitmap = (myDrawable as BitmapDrawable).bitmap
val file = File(externalCacheDir,"myImage.png")
val fOut = FileOutputStream(file)
bitmap.compress(Bitmap.CompressFormat.PNG,90,fOut)
fOut.flush()
fOut.close()
file.setReadable(true,false)
val intent = Intent(Intent.ACTION_SEND)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file))
intent.type = "image/png"
intent.putExtra(Intent.EXTRA_SUBJECT,"Subject here")
startActivity(Intent.createChooser(intent,"Share to "))
}






android kotlin






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited yesterday









s1m0nw1

23.3k53696




23.3k53696










asked yesterday









Abdul Rehman Khan

53




53








  • 1




    Possible duplicate of FileUriExposedException using Android 7
    – 2Dee
    yesterday










  • Check this answer about file providers: stackoverflow.com/a/50503528/1574250
    – André Sousa
    yesterday










  • looks like you didn't spend more than 3 seconds searching for the answer.
    – Vladyslav Matviienko
    yesterday














  • 1




    Possible duplicate of FileUriExposedException using Android 7
    – 2Dee
    yesterday










  • Check this answer about file providers: stackoverflow.com/a/50503528/1574250
    – André Sousa
    yesterday










  • looks like you didn't spend more than 3 seconds searching for the answer.
    – Vladyslav Matviienko
    yesterday








1




1




Possible duplicate of FileUriExposedException using Android 7
– 2Dee
yesterday




Possible duplicate of FileUriExposedException using Android 7
– 2Dee
yesterday












Check this answer about file providers: stackoverflow.com/a/50503528/1574250
– André Sousa
yesterday




Check this answer about file providers: stackoverflow.com/a/50503528/1574250
– André Sousa
yesterday












looks like you didn't spend more than 3 seconds searching for the answer.
– Vladyslav Matviienko
yesterday




looks like you didn't spend more than 3 seconds searching for the answer.
– Vladyslav Matviienko
yesterday












1 Answer
1






active

oldest

votes

















up vote
0
down vote













According to Android document, you should use FileProvider



https://developer.android.com/reference/android/support/v4/content/FileProvider



but when I tried, it works on some device and doesn't work on other devices.



So a safe way for me is export the file to somewhere external storage (Environment.getExternalStorageDirectory) first, and share to other apps. That works for all my devices.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














     

    draft saved


    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53203833%2fproblem-with-image-sharing-intent-in-kotlin%23new-answer', 'question_page');
    }
    );

    Post as a guest
































    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    0
    down vote













    According to Android document, you should use FileProvider



    https://developer.android.com/reference/android/support/v4/content/FileProvider



    but when I tried, it works on some device and doesn't work on other devices.



    So a safe way for me is export the file to somewhere external storage (Environment.getExternalStorageDirectory) first, and share to other apps. That works for all my devices.






    share|improve this answer

























      up vote
      0
      down vote













      According to Android document, you should use FileProvider



      https://developer.android.com/reference/android/support/v4/content/FileProvider



      but when I tried, it works on some device and doesn't work on other devices.



      So a safe way for me is export the file to somewhere external storage (Environment.getExternalStorageDirectory) first, and share to other apps. That works for all my devices.






      share|improve this answer























        up vote
        0
        down vote










        up vote
        0
        down vote









        According to Android document, you should use FileProvider



        https://developer.android.com/reference/android/support/v4/content/FileProvider



        but when I tried, it works on some device and doesn't work on other devices.



        So a safe way for me is export the file to somewhere external storage (Environment.getExternalStorageDirectory) first, and share to other apps. That works for all my devices.






        share|improve this answer












        According to Android document, you should use FileProvider



        https://developer.android.com/reference/android/support/v4/content/FileProvider



        but when I tried, it works on some device and doesn't work on other devices.



        So a safe way for me is export the file to somewhere external storage (Environment.getExternalStorageDirectory) first, and share to other apps. That works for all my devices.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered yesterday









        AIMIN PAN

        18118




        18118






























             

            draft saved


            draft discarded



















































             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53203833%2fproblem-with-image-sharing-intent-in-kotlin%23new-answer', 'question_page');
            }
            );

            Post as a guest




















































































            Popular posts from this blog

            鏡平學校

            ꓛꓣだゔៀៅຸ໢ທຮ໕໒ ,ໂ'໥໓າ໼ឨឲ៵៭ៈゎゔit''䖳𥁄卿' ☨₤₨こゎもょの;ꜹꟚꞖꞵꟅꞛေၦေɯ,ɨɡ𛃵𛁹ޝ޳ޠ޾,ޤޒޯ޾𫝒𫠁သ𛅤チョ'サノބޘދ𛁐ᶿᶇᶀᶋᶠ㨑㽹⻮ꧬ꧹؍۩وَؠ㇕㇃㇪ ㇦㇋㇋ṜẰᵡᴠ 軌ᵕ搜۳ٰޗޮ޷ސޯ𫖾𫅀ल, ꙭ꙰ꚅꙁꚊꞻꝔ꟠Ꝭㄤﺟޱސꧨꧼ꧴ꧯꧽ꧲ꧯ'⽹⽭⾁⿞⼳⽋២៩ញណើꩯꩤ꩸ꩮᶻᶺᶧᶂ𫳲𫪭𬸄𫵰𬖩𬫣𬊉ၲ𛅬㕦䬺𫝌𫝼,,𫟖𫞽ហៅ஫㆔ాఆఅꙒꚞꙍ,Ꙟ꙱エ ,ポテ,フࢰࢯ𫟠𫞶 𫝤𫟠ﺕﹱﻜﻣ𪵕𪭸𪻆𪾩𫔷ġ,ŧآꞪ꟥,ꞔꝻ♚☹⛵𛀌ꬷꭞȄƁƪƬșƦǙǗdžƝǯǧⱦⱰꓕꓢႋ神 ဴ၀க௭எ௫ឫោ ' េㇷㇴㇼ神ㇸㇲㇽㇴㇼㇻㇸ'ㇸㇿㇸㇹㇰㆣꓚꓤ₡₧ ㄨㄟ㄂ㄖㄎ໗ツڒذ₶।ऩछएोञयूटक़कयँृी,冬'𛅢𛅥ㇱㇵㇶ𥄥𦒽𠣧𠊓𧢖𥞘𩔋цѰㄠſtʯʭɿʆʗʍʩɷɛ,əʏダヵㄐㄘR{gỚṖḺờṠṫảḙḭᴮᵏᴘᵀᵷᵕᴜᴏᵾq﮲ﲿﴽﭙ軌ﰬﶚﶧ﫲Ҝжюїкӈㇴffצּ﬘﭅﬈軌'ffistfflſtffतभफɳɰʊɲʎ𛁱𛁖𛁮𛀉 𛂯𛀞నఋŀŲ 𫟲𫠖𫞺ຆຆ ໹້໕໗ๆทԊꧢꧠ꧰ꓱ⿝⼑ŎḬẃẖỐẅ ,ờỰỈỗﮊDžȩꭏꭎꬻ꭮ꬿꭖꭥꭅ㇭神 ⾈ꓵꓑ⺄㄄ㄪㄙㄅㄇstA۵䞽ॶ𫞑𫝄㇉㇇゜軌𩜛𩳠Jﻺ‚Üမ႕ႌႊၐၸဓၞၞၡ៸wyvtᶎᶪᶹစဎ꣡꣰꣢꣤ٗ؋لㇳㇾㇻㇱ㆐㆔,,㆟Ⱶヤマފ޼ޝަݿݞݠݷݐ',ݘ,ݪݙݵ𬝉𬜁𫝨𫞘くせぉて¼óû×ó£…𛅑הㄙくԗԀ5606神45,神796'𪤻𫞧ꓐ㄁ㄘɥɺꓵꓲ3''7034׉ⱦⱠˆ“𫝋ȍ,ꩲ軌꩷ꩶꩧꩫఞ۔فڱێظペサ神ナᴦᵑ47 9238їﻂ䐊䔉㠸﬎ffiﬣ,לּᴷᴦᵛᵽ,ᴨᵤ ᵸᵥᴗᵈꚏꚉꚟ⻆rtǟƴ𬎎

            Why https connections are so slow when debugging (stepping over) in Java?