WhatsAppに直接制御するインテントが欲しい。したがって、ユーザーがボタンをクリックした瞬間に、インテントはWhatsAppに移動することになっています。これは、いくつかのガイドラインに従って作成したコードですが、機能しません
buttonWhatsapp.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Performs action on click
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(Intent.createChooser(sendIntent, ""));
startActivity(sendIntent);
//opens the portfolio details class
}
});
2018 APIを使用する:
String url = "https://api.whatsapp.com/send?phone="+number;
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
このコードは私のために働いています
String contact = "+00 9876543210"; // use country code with your phone number
String url = "https://api.whatsapp.com/send?phone=" + contact;
try {
PackageManager pm = context.getPackageManager();
pm.getPackageInfo("com.whatsapp", PackageManager.GET_ACTIVITIES);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
} catch (PackageManager.NameNotFoundException e) {
Toast.makeText(MainActivity.activity, "Whatsapp app not installed in your phone", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
PackageManager pm = getActivity().getPackageManager();
try
{
// Raise exception if whatsapp doesn't exist
PackageInfo info = pm.getPackageInfo("com.whatsapp", PackageManager.GET_META_DATA);
Intent waIntent = new Intent(Intent.ACTION_SEND);
waIntent.setType("text/plain");
waIntent.setPackage("com.whatsapp");
waIntent.putExtra(Intent.EXTRA_TEXT, "YOUR TEXT");
startActivity(waIntent);
}
catch (PackageManager.NameNotFoundException e)
{
Toast.makeText(MainActivity.activity, "Please install whatsapp app", Toast.LENGTH_SHORT)
.show();
}
私が知る最も簡単な方法は、次のメソッドを呼び出すことです(文字列変数(メッセージ)を使用して、WhatAapp経由で送信するテキストを入力します)。
private void sendWhatsapp(String message){
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, message);
sendIntent.setType("text/plain");
sendIntent.setPackage("com.whatsapp");
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(sendIntent);
}
}
これがお役に立てば幸いです。
ここではテキストと画像の両方を共有する方法を示しています。テキストを共有するには、これらのコードを使用できます。
private void shareTextUrl() {
Intent share = new Intent(Android.content.Intent.ACTION_SEND);
share.setType("text/plain");
share.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
// Add data to the intent, the receiving app will decide
// what to do with it.
share.putExtra(Intent.EXTRA_SUBJECT, "Title Of The Post");
share.putExtra(Intent.EXTRA_TEXT, "http://www.codeofaninja.com");
startActivity(Intent.createChooser(share, "Share link!"));
}
画像を共有したい場合は、これらのコードを使用できます。
private void shareImage() {
Intent share = new Intent(Intent.ACTION_SEND);
// If you want to share a png image only, you can do:
// setType("image/png"); OR for jpeg: setType("image/jpeg");
share.setType("image/*");
// Make sure you put example png image named myImage.png in your
// directory
String imagePath = Environment.getExternalStorageDirectory()
+ "/myImage.png";
File imageFileToShare = new File(imagePath);
Uri uri = Uri.fromFile(imageFileToShare);
share.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(share, "Share Image!"));
}
この方法をチェックアウト
private void openWhatsApp(String smsNumber) {
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, "Hi, This is " + PreferenceManager.get(this, Constants.USERNAME));
sendIntent.putExtra("jid", smsNumber + "@s.whatsapp.net"); //phone number without "+" prefix
sendIntent.setPackage("com.whatsapp");
if (sendIntent.resolveActivity(getPackageManager()) == null) {
Toast.makeText(this, "Error/n", Toast.LENGTH_SHORT).show();
return;
}
startActivity(sendIntent);
}
このスニペットは公式のwhatsappサイトのものです
https://www.whatsapp.com/faq/Android/28000012
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);
この昨日のこの作品
private void openWhatsApp(String number) {
try {
number = number.replace(" ", "").replace("+", "");
Intent sendIntent = new Intent("Android.intent.action.MAIN");
sendIntent.setComponent(new ComponentName("com.whatsapp","com.whatsapp.Conversation"));
sendIntent.putExtra("jid", PhoneNumberUtils.stripSeparators(number)+"@s.whatsapp.net");
// getApplication().startActivity(sendIntent);
startActivity(Intent.createChooser(sendIntent, "Compartir en")
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
} catch(Exception e) {
Log.e("WS", "ERROR_OPEN_MESSANGER"+e.toString());
}
}