2017-05-22 11 views
0

私は、このファイルを送信する(JSON)がAndroidアプリに/から設定ファイルを送信

設定ファイルをロードし、 は、だから私はこれを追加した別のデバイスへのデバイスからそれを得る/保存することができますアプリを持っていますアプリはGmailやどんな

      Intent shareIntent = new Intent(); 
          shareIntent.setAction(Intent.ACTION_SEND); 
          shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // temp permission for receiving app to read this file 
          shareIntent.setDataAndType(fileUri, getContentResolver().getType(fileUri)); 
          shareIntent.putExtra(Intent.EXTRA_STREAM, fileUri); 
          startActivity(Intent.createChooser(shareIntent, "Choose an app")); 

に送ることができるように可能性私はマニフェストに追加しました:

<intent-filter> 
      <action android:name="android.intent.action.SEND" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <data android:mimeType="text/plain" /> 
</intent-filter> 

編集:私もマニフェストにあります

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

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

私はそれも、ファイルを開くために使用することができる可能アプリとして私に私のアプリを提案してい

Intent intent = getIntent(); 
String action = intent.getAction(); 
String type = intent.getType(); 

    if (Intent.ACTION_SEND.equals(action) && type != null) { 
     if ("text/plain".equals(type)) { 
     //???? 
      Toast.makeText(getApplicationContext(), "Receive the file", Toast.LENGTH_SHORT).show(); 
     } 
    } 

意図を処理するために、以下の行を追加しました。 なぜですか?

が、私は(Viberのか...)からいくつかのテキストを共有している場合、私はそれは私が必要なもの「テキスト/ *」

をハンドラとして私のアプリを提案することである探したコードに入ることを確認テキストファイルの場合

+0

のですか? 2番目のデバイスでは? –

+0

はい、同じアプリケーションを実行する受信デバイスでは、ダウンロードディレクトリからファイルを取得する必要があります(ユーザーがファイルをクリックした場合、アプリケーションに送信するenエクスプローラまたはgmail経由) – Lotfi

+0

この可能性を確認してください。https: //developer.android.com/reference/android/Manifest.permission.html#READ_EXTERNAL_STORAGEあなたがチェックを行っているアクションについて最後のコードをチェックする必要があります。 –

答えて

0

インテントフィルタでMIMEタイプとして「text/plain」を設定しているため、shareIntentのタイプを「text/plain」に設定する必要があります。

つまり、getContentResolver().getType(fileUri)がコードではそうでないかもしれない "text/plain"を返すことを確認してください。

だから、以下のようにあなたがsetDataAndTypeを呼び出す場合より良いです:

それを見つけた
shareIntent.setDataAndType(fileUri, "text/plain"); 
+0

ありがとう、私はすでにそれも試してみましたが、私は動かない – Lotfi

0

:右の意図はACTION_VIEW

<intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <!--<category android:name="android.intent.category.OPENABLE"/>--> 
     <data android:mimeType="text/*" /> 
    </intent-filter> 
あなたは、コードの最後の部分をチェックされている
関連する問題