我为React Native制作了自定义原生模块,需要从路径/data/user/0/com.instagramscheduler/files/downloaded.jpg
(这是我的应用程序)共享图像,并且要清楚文件存在于该文件夹中 。
但问题是它不共享,当我分享到Instagram时,它表示它无法加载文件。我已经检查了uri.toString() == "file:///data/user/0/com.instagramscheduler/files/downloaded.jpg"
我的React Native自定义共享方法:
public void share() {
// Create the new Intent using the 'Send' action.
Intent share = new Intent(Intent.ACTION_SEND);
// Set the MIME type
share.setType("image/jpeg");
share.setPackage("com.instagram.android");
// Create the URI from the media
File media = new File("/data/user/0/com.instagramscheduler/files/downloaded.jpg");
Uri uri = Uri.fromFile(media);
// Add the URI to the Intent.
share.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
share.putExtra(Intent.EXTRA_STREAM, uri);
// Broadcast the Intent.
activity.startActivity(Intent.createChooser(share, "Share To"));
}
如果有帮助,这是清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.instagramscheduler">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
如果需要,这是 logcat (从分享对话框打开到无法在Instagram上分享时开始):https://gist.github.com/Azael05x/f706925668ce9b8dd9970a81ed23e979
答案 0 :(得分:1)