2014-12-29 2 views
2

whatsapp를 통해 직접 메시지를 보내고 싶습니다. 아래 코드가 작동하는 것을 발견했습니다. 하지만 공통된 함수 호출로 코드를 다른 자바 파일로 옮긴 후에는 작동하지 않고 충돌하지 않습니다. 그래서 무엇이 잘못 되었습니까? 감사합니다context.startActivity를 사용하여 whatsapp에 직접 메시지를 보내십시오.

전에 :

Intent sendIntent = new Intent(); 
      sendIntent.setAction(Intent.ACTION_SEND); 
      sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); 
      sendIntent.setType("text/plain"); 
      sendIntent.setPackage("com.whatsapp"); 
      startActivity(sendIntent); 

후 : 당신의 로그 캣 어디

public void share2whatsapp(Context context) { 

    Intent sendIntent = new Intent(Intent.ACTION_SEND); 
    sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); 
    sendIntent.setType("text/plain"); 
    sendIntent.setPackage("com.whatsapp"); 
    context.startActivity(sendIntent); 
} 
+1

입니까 ??? –

+0

context maybe null –

+0

컨텍스트가 null이 아닙니다. 예, logcat에 대한 정보를 찾고 다음과 같이 플래그를 추가합니다. - sendIntent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK); 12-29 14 : 55 : 39.558 : E/AndroidRuntime (13592) : 치명적인 예외 : 주 12-29 14 : 55 : 39.558 : E/AndroidRuntime (13592) : android.util.AndroidRuntimeException : Activity 컨텍스트 외부에서 startActivity()를 호출하려면 FLAG_ACTIVITY_NEW_TASK 플래그가 필요합니다. 이게 니가 원하는거야? 그러나 첫 번째 메일을 보내고 다른 메일을 보내려고하면 whatsapp에 두 번째 메일이 표시되지 않습니다. 여전히 잘못된 것이 있습니까? – user2911996

답변

-1
public void share2whatsapp(Context context) { 
    Intent sendIntent = new Intent(Intent.ACTION_SEND); 
    sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); 
    sendIntent.setType("text/plain"); 
    sendIntent.setPackage("com.whatsapp"); 
    sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(sendIntent); 
} 
+0

답변에 몇 가지 설명을 추가하는 것이 좋습니다. 코드 전용 답변은 일반적으로 특히 유용한 것으로 간주되지 않습니다. –

+0

sendIntent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK); 디버거에서 제안한대로 추가됩니다. – user2911996

관련 문제