2016-02-06 1 views
8

Используя этот код, только открывайте чат чата, но текст не является общим. Как я могу это сделать?Как я могу обмениваться текстом в приложении приложения по конкретному номеру

public class MainActivity extends AppCompatActivity { 
Button Wa; 
String id = "+919000000000"; 
EditText txt; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    txt = (EditText)findViewById(R.id.editText); 
    Wa = (Button)findViewById(R.id.btn_whatsapp); 
    Wa.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Uri uri = Uri.parse("smsto:" + id); 
      Intent waIntent = new Intent(Intent.ACTION_SENDTO,uri); 

      String text = "testing message"; 
      waIntent.setPackage("com.whatsapp"); 
      if (waIntent != null) { 
       waIntent.putExtra(Intent.EXTRA_TEXT, text); 
       startActivity(Intent.createChooser(waIntent, text)); 
      } else { 
       Toast.makeText(getApplicationContext(), "WhatsApp not found", Toast.LENGTH_SHORT) 
         .show(); 
      } 

     } 
    }); 

} 
+0

как отправить sms так же, как в whatsup http://stackoverflow.com/q/9798657/1168654 –

+0

http://stackoverflow.com/a/19179175/1168654 –

+0

Попробуйте вот это Intent waIntent = new Intent (android.content .Intent.ACTION_SEND); waIntent.setType ("text/plain"); – KCN

ответ

1

Поскольку вы пытаетесь достичь как "smsto:", "text/plain" как тип поможет вам. Попробуйте Extra как "sms_body", если это не поможет.

Uri uri = Uri.parse("smsto:" + id); 
Intent waIntent = new Intent(Intent.ACTION_SENDTO,uri); 
String text = "testing message"; 
waIntent.setPackage("com.whatsapp"); 
if (waIntent != null) { 
    waIntent.setType("text/plain"); 
    //waIntent.putExtra(Intent.EXTRA_TEXT, text); 
    waIntent.putExtra("sms_body", text); 
    startActivity(Intent.createChooser(waIntent, text)); 
} else { 
    Toast.makeText(getApplicationContext(), "WhatsApp not found", Toast.LENGTH_SHORT) 
      .show(); 
} 
+0

его не работает .... –

+0

вместо «text/plain», попробуйте uysing «message/rfc822» –

0

Пожалуйста, пройти через этот StackOverflow связывает

  1. Sending message through WhatsApp
  2. Send text to specific contact

кажется, что WhatsApp еще does't поддержали эту fetaure. можно открывать только в истории чата для определенного числа, используя ниже код

try { 
      Uri mUri = Uri.parse("smsto:+98xxxxxxxx"); 
      Intent mIntent = new Intent(Intent.ACTION_SENDTO, mUri); 
      mIntent.setPackage("com.whatsapp"); 

//   mIntent.putExtra("sms_body", "My body"); 
      mIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); 

      startActivity(mIntent); 
     } catch (Exception e) { 
      // alert WhatsApp in not installed 
     } 
+0

Уже сделано .. но его не работает. –

0

Попробуйте что-то вроде этого:

public class MainActivity extends AppCompatActivity { 
    Button Wa; 
    String id = "+919000000000"; 
    EditText txt; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     txt = (EditText)findViewById(R.id.editText); 
     Wa = (Button)findViewById(R.id.btn_whatsapp); 
     Wa.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       PackageManager pm=getPackageManager(); 
       try { 
        Uri uri = Uri.parse("smsto:" + number); 
        Intent i = new Intent(Intent.ACTION_SENDTO, uri); 
        waIntent.setType("text/plain"); 
        String text = "testing message"; 

        PackageInfo info=pm.getPackageInfo("com.whatsapp", PackageManager.GET_META_DATA); 
        waIntent.setPackage("com.whatsapp"); 
        waIntent.putExtra(Intent.EXTRA_TEXT, text); 
        startActivity(Intent.createChooser(waIntent, text)); 
       } 
       catch (NameNotFoundException e) { 
        Toast.makeText(this, "WhatsApp not found", Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }); 
    } 
} 
0

Ответ от Here

Раньше это было не возможно, но так как Обновление май'15. Оформить заказ:

try{ 
    PackageInfo info = pm.getPackageInfo("com.whatsapp", PackageManager.GET_META_DATA); 
    Intent sendIntent = new Intent(); 
    sendIntent.setAction(Intent.ACTION_SEND); 
    String sendString = "some random string"; 
    sendIntent.setPackage("com.whatsapp"); 
    sendIntent.putExtra(Intent.EXTRA_TEXT, sendString); 
    sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); 
    sendIntent.setType("image/*"); 
    startActivity(sendIntent); 
} catch (Exception e){ 
    // some code 
} 

Здесь строка PackageInfo предназначена только для проверки наличия WhatsApp. Он выбрасывает исключение, если нет. Вы можете просто игнорировать это, если хотите сделать обычную долю (и setPackage также).

Также. Важно, чтобы носители, которые вы хотите поделиться, должны быть общедоступными на локальном хранилище.

UPDATE

Для отправки на конкретный контакт

Uri uri = Uri.parse("smsto:" + "<CONTACT_NUMBER>"); 
Intent i = new Intent(Intent.ACTION_SENDTO, uri); 
i.putExtra(Intent.EXTRA_TEXT, whatsAppMessage); 

Как действий Послать теперь разрешено.