2017-12-23 10 views
1

アンドロイドアプリで共有コンテンツに以下のコードを使用しています。アンドロイド7. +では正常に動作していますが、marshmallow(6.0.1)では動作しません。提案してください。android marshmallowでシェアインテントが動作しない

shareNow.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      try { 
      Intent sharingIntent = new Intent(Intent.ACTION_SEND); 
      sharingIntent.setType("text/plain"); 
      String shareBody = Constants.SHARE_TEXT + refer_code; 
      sharingIntent.putExtra(Intent.EXTRA_SUBJECT, "Share"); 
      sharingIntent.putExtra(Intent.EXTRA_TEXT, shareBody); 
      startActivity(Intent.createChooser(sharingIntent, "Share via")); 
      } catch (Exception e) { 
       ShowToastMsg.showToast(getActivity(), "Error Occured"); 
      } 
     } 
    }); 

答えて

2

これは、実行時の許可が原因である可能性があります。 Android marshmallowには、デバイスに保存されているイメージファイルにアクセスするための実行時アクセス許可が必要です。したがって、コードでランタイムパーミッションを与える必要があります。

ので、あなたがそう要求を行う前に、注意が必要READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGEなどの必要なpremissionsを与えていることを確認してください。あなたがここでパーミッションの部分を処理したくないのなら、それを行う方法です。

// Provide read access 
shareIntent.setData(uriToImage); 
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 

新しい機能の使用方法の詳細なガイドがあります。 Link

https://developer.android.com/training/permissions/requesting.html

注意をご覧ください:あなたはまた、hereチュートリアルで直接共有を使用することができます。私は一度、この問題を得た

0

は、私はフラグFLAG_ACTIVITY_NEW_TASK追加し、それがうまく働きました。

ご希望の方にお勧めします。

注:apkに署名した後にエラーが表示されるため、apkに署名した後で確認する必要があります。

関連する問題