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