2017-12-23 6 views
1

안드로이드 애플 리케이션의 공유 콘텐츠에 아래 코드를 사용하고 있습니다. 코드는 안드로이드 7. +에서 제대로 작동하지만 marshmallow (6.0.1)에서는 작동하지 않습니다. 제발 제안 해주세요.공유 의도가 안드로이드 마시맬로에서 작동하지 않습니다

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_STORAGE 및 그렇게 요청을하기 전에주의 WRITE_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에 서명 한 후 확인해야 할 수 있습니다.