Android 如何在what';s应用程序的特定号码

Android 如何在what';s应用程序的特定号码,android,whatsapp,Android,Whatsapp,使用此代码只能打开特定号码的聊天室,但不能共享文本。我如何才能做到这一点 public class MainActivity extends AppCompatActivity { Button Wa; String id = "+919000000000"; EditText txt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

使用此代码只能打开特定号码的聊天室,但不能共享文本。我如何才能做到这一点

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();
            }

         }
    });

}

由于您试图将其实现为
“smsto:”
“text/plain”
作为类型将对您有所帮助。如果没有帮助,请尝试使用“短信正文”的额外功能

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();
}

请通过这个链接

  • 看来,WhatsApp仍然不支持这种做法。 您只能使用以下代码打开特定号码的聊天记录


    试着这样做:

    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();
                    }  
                 }
            });
        }
    }
    
    答复

    早些时候,这是不可能的,但自从5月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),你可以忽略它

    还有。要共享的媒体必须在本地存储上公开,这一点很重要

    更新

    发送到特定联系人

    Uri uri = Uri.parse("smsto:" + "<CONTACT_NUMBER>");
    Intent i = new Intent(Intent.ACTION_SENDTO, uri);
    i.putExtra(Intent.EXTRA_TEXT, whatsAppMessage);
    
    Uri=Uri.parse(“smsto:+”);
    意图i=新意图(Intent.ACTION\u SENDTO,uri);
    i、 putExtra(Intent.EXTRA_文本,whatsAppMessage);
    

    As Action Send To现在是允许的。

    如何发送与whatsup中相同的短消息尝试这样的Intent waIntent=新Intent(android.content.Intent.Action\u Send);waIntent.setType(“文本/普通”)@DhawalSodhaParmar我会尽我所能在你的链接中给出。。但事实并非如此work@DhawalSodhaParmar新意图(android.content.Intent.ACTION\u SEND);waIntent.setType(“文本/普通”);使用此open whats应用程序并选择任意号码。。但是我想在particalu号码上共享文本。请尝试使用“message/rfc822”代替“text/plain”
    Uri uri = Uri.parse("smsto:" + "<CONTACT_NUMBER>");
    Intent i = new Intent(Intent.ACTION_SENDTO, uri);
    i.putExtra(Intent.EXTRA_TEXT, whatsAppMessage);