2016-04-23 10 views
0

パス/data/user/0/com.instagramscheduler/files/downloaded.jpg(自分のアプリケーション)から画像を共有し、そのフォルダにファイルが存在することが必要なReact Nativeのカスタムネイティブモジュールを作成しました。DocumentDirectoryPathからインスタントグラムに画像をネイティブに共有する

しかし、問題はそれが共有されていないということです。私がInstagramに共有すると、はファイルをロードできませんと言います。私がチェックしているとuri.toString() == "file:///data/user/0/com.instagramscheduler/files/downloaded.jpg"

私はネイティブカスタム共有方法に反応:それは場合に役立ちます。ここ

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

答えて

1
  1. 私はダウンロードして、あなたのアプリケーションフォルダに画像を保存するのではなく、画像を保存しているように、public folderに保存します。 Instagramは私のアプリケーションのプライベートフォルダにアクセスできなかったので、うまくいきました。
  2. それから、私は他の電話でチェックしてもうまくいきませんでした。理由は、Instagramが無効なストレージ許可を持っていたということでした。
関連する問題