使用viber

时间:2017-01-06 10:04:55

标签: android android-intent

我在使用android intent从我的应用程序共享内容时遇到了一个问题。我正在分享的内容存在于应用程序的私人记忆中。

我正在使用 FileProvider 进行分享,并且能够在某些应用上分享它(例如:Twitter,Gmail,Whatsapp)。但是,出于某种原因,当我从App选择器中选择Viber时,它显示为空白屏幕。

如果我将内容位置更改为外部SD卡,那么即使 Viber 也能正常工作。

我的问题是,如果我将内容位置更改为SD卡,那么我必须使用 WRITE_STORAGE_PERMISSION ,这是我不想要的。

请帮助您了解如何为Viber完成此操作,无需移动内容,也无需使用任何额外的权限,因为可以在其他应用上共享。

分享意图的代码

    Uri imageUri = FileProvider.getUriForFile(context, "packagemane.pdffilesprovider", newFile);
        shareIntent = new Intent(android.content.Intent.ACTION_SEND);
        shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        shareIntent.setType("*/*");
        shareIntent.putExtra(Intent.EXTRA_TEXT, content +"\n"+url);
        shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);

清单中的FileProvider

    <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="cpackagemane.pdffilesprovider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/fileprovider" />
    </provider>

fileprovider.xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <paths xmlns:android="http://schemas.android.com/apk/res/android">
          <external-path name="external_files" path="."/>
          <files-path name="my_images" path="images/"/>
    </paths>

0 个答案:

没有答案