Ich möchte eine SMS absichtlich senden, aber wenn ich diesen Code verwende, werde ich zu einem falschen Kontakt weitergeleitet:
Intent intentt = new Intent(Intent.ACTION_VIEW);
intentt.setData(Uri.parse("sms:"));
intentt.setType("vnd.android-dir/mms-sms");
intentt.putExtra(Intent.EXTRA_TEXT, "");
intentt.putExtra("address", phone number);
context.startActivity(intentt);
Warum?
Ich kenne auch eine Möglichkeit, das Senden von SMS zu verfolgen, aber ich weiß nicht, wie dies codiert wird:
Starting activity: Intent {
act=android.intent.action.SENDTO dat=smsto:%2B**XXXXXXXXXXXX** flg=0x14000000
cmp=com.android.mms/.ui.ComposeMessageActivity }
Dabei ist XXXXXXXXXXXX die Telefonnummer.
android
android-intent
sms
An einer
quelle
quelle
ActivityNotFoundException: No Activity found to handle Intent ("vnd.android-dir/mms-sms")
. Verwenden Sie diese Methode besser nicht.Antworten:
Ich habe diese Funktionalität aus einem Blog entwickelt. Es gibt zwei Möglichkeiten, wie Sie SMS senden können.
Dies ist der Code der 1. Methode.
Main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:id="@+id/relativeLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <Button android:id="@+id/btnSendSMS" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Send SMS" android:layout_centerInParent="true" android:onClick="sendSMS"> </Button> </RelativeLayout>
Aktivität
public class SendSMSActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void sendSMS(View v) { String number = "12346556"; // The number on which you want to send SMS startActivity(new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", number, null))); } /* or public void sendSMS(View v) { Uri uri = Uri.parse("smsto:12346556"); Intent it = new Intent(Intent.ACTION_SENDTO, uri); it.putExtra("sms_body", "Here you can set the SMS text to be sent"); startActivity(it); } */ }
HINWEIS: - Bei dieser Methode benötigen Sie keine SEND_SMS-Berechtigung in der Datei AndroidManifest.xml.
Die zweite Methode finden Sie in diesem BLOG . Hier finden Sie eine gute Erklärung.
Hoffe das wird dir helfen ...
quelle
sendSMS(View v)
Uri uri = Uri.parse("smsto:YOUR_SMS_NUMBER"); Intent intent = new Intent(Intent.ACTION_SENDTO, uri); intent.putExtra("sms_body", "The SMS text"); startActivity(intent);
quelle
"sms_body"
funktioniert,Intent.EXTRA_TEXT
hat nicht funktioniert.Erstellen Sie die Absicht wie folgt:
Intent smsIntent = new Intent(android.content.Intent.ACTION_VIEW); smsIntent.setType("vnd.android-dir/mms-sms"); smsIntent.putExtra("address","your desired phoneNumber"); smsIntent.putExtra("sms_body","your desired message"); smsIntent.setFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(smsIntent);
quelle
Versuchen Sie diesen Code. Es wird klappen
Uri smsUri = Uri.parse("tel:123456"); Intent intent = new Intent(Intent.ACTION_VIEW, smsUri); intent.putExtra("sms_body", "sms text"); intent.setType("vnd.android-dir/mms-sms"); startActivity(intent);
Hoffe das wird dir helfen.
quelle
Wenn Sie eine bestimmte Nachricht wünschen, verwenden Sie diese:
String phoneNo = "";//The phone number you want to text String sms= "";//The message you want to text to the phone Intent smsIntent = new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", phoneNo, null)); smsIntent.putExtra("sms_body",sms); startActivity(smsIntent);
quelle
Hoffe das ist Arbeit, das funktioniert in meiner App
SmsManager.getDefault().sendTextMessage("Phone Number", null, "Message", null, null);
quelle
sendMultipartTextMessage
anstelle vonsendTextMessage
/** * Intent to Send SMS * * * Extras: * * "subject" * A string for the message subject (usually for MMS only). * "sms_body" * A string for the text message. * EXTRA_STREAM * A Uri pointing to the image or video to attach. * * For More Info: * https://developer.android.com/guide/components/intents-common#SendMessage * * @param phoneNumber on which SMS to send * @param message text Message to send with SMS */ public void startSMSIntent(String phoneNumber, String message) { Intent intent = new Intent(Intent.ACTION_SENDTO); // This ensures only SMS apps respond intent.setData(Uri.parse("smsto:"+phoneNumber)); intent.putExtra("sms_body", message); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); } }
quelle
Erstellen Sie die Absicht wie folgt:
Uri uriSms = Uri.parse("smsto:1234567899"); Intent intentSMS = new Intent(Intent.ACTION_SENDTO, uriSms); intentSMS.putExtra("sms_body", "The SMS text"); startActivity(intentSMS);
quelle
it.PutExtra
das?uses-permission android:name="android.permission.SEND_SMS"/>
Prem
in diesem Thread geschrieben) und ersetzen Sie die folgende Telefonnummer durch eine tatsächliche Nummer. Es wird funktionieren:startActivity(new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", "phone_Number", null)));
quelle
Füge Try-Catch hinzu, sonst stürzen Telefone ohne Sim ab.
void sentMessage(String msg) { try { Intent smsIntent = new Intent(Intent.ACTION_VIEW); smsIntent.setType("vnd.android-dir/mms-sms"); smsIntent.putExtra("sms_body", msg); startActivity(smsIntent); } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, "No SIM Found", Toast.LENGTH_LONG).show(); } }
quelle
Dies ist eine weitere Lösung mit SMSManager:
SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage("PhoneNumber-example:+989147375410", null, "SMS Message Body", null, null);
quelle