SmsManager API
SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage("phoneNo", null, "sms message", null, null);
membuat aplikasi sms
Intent sendIntent = new Intent(Intent.ACTION_VIEW); sendIntent.putExtra("sms_body", "default content"); sendIntent.setType("vnd.android-dir/mms-sms"); startActivity(sendIntent);
Tentu saja, kedua perlu izin SEND_SMS.
<uses-permission android:name="android.permission.SEND_SMS" />
Terlepas dari metode di atas, ada beberapa fungsi penting lain yang tersedia di kelas SmsManager. Metode ini tercantum di bawah ini -
1 ArrayList <String> divideMessage (String teks)
Metode ini membagi pesan teks ke dalam beberapa fragmen, tidak lebih besar dari ukuran pesan SMS maksimal.
2 statis SmsManager getDefault ()
Metode ini digunakan untuk mendapatkan contoh default dari SmsManager yang
3 kekosongan sendDataMessage (String destinationAddress, String scAddress, destinationPort pendek, byte [] data, PendingIntent sentIntent, PendingIntent deliveryIntent)
Metode ini digunakan untuk mengirim SMS berdasarkan data ke port aplikasi tertentu.
4 kekosongan sendMultipartTextMessage (String destinationAddress, String scAddress, ArrayList <String> bagian, ArrayList <PendingIntent> sentIntents, ArrayList <PendingIntent> deliveryIntents)
Kirim SMS berbasis multi-bagian teks.
5 batal sendTextMessage (String destinationAddress, String scAddress, String teks, PendingIntent sentIntent, PendingIntent deliveryIntent)
Kirim SMS berbasis teks.
Contoh
Berikut contoh menunjukkan Anda dalam praktis bagaimana menggunakan objek SmsManager untuk mengirim SMS ke nomor ponsel yang diberikan.
Untuk bereksperimen dengan contoh ini, Anda akan membutuhkan perangkat mobile yang sebenarnya dilengkapi dengan Android OS terbaru, jika tidak Anda akan harus berjuang dengan emulator yang mungkin tidak bekerja.
1 Anda akan menggunakan Android Studio IDE untuk membuat aplikasi Android dan nama itu sebagai unggul bawah com.example.unggul paket. Sementara menciptakan proyek ini, pastikan Anda Targetkan SDK dan Kompilasi Dengan di versi terbaru dari Android SDK untuk menggunakan tingkat yang lebih tinggi dari API.
2 Memodifikasi src MainActivity.java berkas / dan menambahkan kode yang diperlukan untuk mengurus pengiriman email.
3 Memodifikasi file layout XML res / layout / activity_main.xml menambahkan komponen GUI jika diperlukan. Saya menambahkan GUI sederhana untuk mengambil nomor dan SMS ponsel teks yang akan dikirim dan tombol sederhana untuk mengirim SMS.
4 Tidak perlu mendefinisikan konstanta string standar di res / values / strings.xml. Android studio mengurus konstanta default.
5 Modify AndroidManifest.xml seperti yang ditunjukkan di bawah ini
6 Jalankan aplikasi untuk meluncurkan Android emulator dan memverifikasi hasil dari perubahan yang dilakukan dalam aplikasi.
Berikut ini adalah isi dari file utama kegiatan src / com.example.unggul / MainActivity.java dimodifikasi.
package com.example.unggul; import android.os.Bundle; import android.app.Activity; import android.telephony.SmsManager; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { Button sendBtn; EditText txtphoneNo; EditText txtMessage; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sendBtn = (Button) findViewById(R.id.btnSendSMS); txtphoneNo = (EditText) findViewById(R.id.editText); txtMessage = (EditText) findViewById(R.id.editText2); sendBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { sendSMSMessage(); } }); } protected void sendSMSMessage() { Log.i("Send SMS", ""); String phoneNo = txtphoneNo.getText().toString(); String message = txtMessage.getText().toString(); try { SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(phoneNo, null, message, null, null); Toast.makeText(getApplicationContext(), "SMS sent.", Toast.LENGTH_LONG).show(); } catch (Exception e) { Toast.makeText(getApplicationContext(), "SMS faild, please try again.", Toast.LENGTH_LONG).show(); e.printStackTrace(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
Berikut akan menjadi isi dari res/ layout / activity_main.xml file:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="MainActivity"> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Sending SMS Example" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:textSize="30dp" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="unggul" android:textColor="#ff87ff09" android:textSize="30dp" android:layout_below="@+id/textView1" android:layout_alignRight="@+id/imageButton" android:layout_alignEnd="@+id/imageButton" /> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageButton" android:src="@drawable/abc" android:layout_below="@+id/textView2" android:layout_centerHorizontal="true" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/editText" android:hint="Enter Phone Number" android:phoneNumber="true" android:textColorHint="@color/abc_primary_text_material_dark" android:layout_below="@+id/imageButton" android:layout_centerHorizontal="true" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/editText2" android:layout_below="@+id/editText" android:layout_alignLeft="@+id/editText" android:layout_alignStart="@+id/editText" android:textColorHint="@color/abc_primary_text_material_dark" android:layout_alignRight="@+id/imageButton" android:layout_alignEnd="@+id/imageButton" android:hint="Enter SMS" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Send Sms" android:id="@+id/btnSendSMS" android:layout_below="@+id/editText2" android:layout_centerHorizontal="true" android:layout_marginTop="48dp" /> </RelativeLayout>
Berikut akan menjadi isi dari res / values / strings.xml untuk mendefinisikan dua konstanta baru -
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">unggul</string> <string name="action_settings">Settings</string> </resources>
Berikut ini adalah isi default AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.unggul" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="22" /> <uses-permission android:name="android.permission.SEND_SMS" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.unggul.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Mari kita coba untuk menjalankan aplikasi Anda. Saya berasumsi bahwa Anda telah menghubungkan perangkat Android Ponsel yang sebenarnya Anda dengan komputer Anda. Untuk menjalankan aplikasi dari studio Android, buka salah satu file kegiatan proyek Anda dan klik Run Run Eclipse Icon icon dari toolbar. Sebelum memulai aplikasi Anda, Android installer studio akan menampilkan berikut jendela untuk memilih pilihan di mana Anda ingin menjalankan aplikasi Android Anda.
Sekarang Anda dapat memasukkan nomor ponsel yang diinginkan dan pesan teks yang akan dikirim di nomor itu. Terakhir, klik pada tombol SMS Kirim untuk mengirim SMS Anda. Pastikan koneksi GSM / CDMA Anda bekerja dengan baik untuk memberikan SMS Anda ke penerima.
Anda dapat mengambil sejumlah SMS dipisahkan dengan koma dan kemudian di dalam program Anda, Anda akan harus mengurai mereka ke sebuah array string dan akhirnya Anda dapat menggunakan loop untuk mengirim pesan ke semua nomor yang diberikan. Itulah cara Anda dapat menulis klien SMS Anda sendiri. Bagian berikutnya akan menunjukkan kepada Anda bagaimana menggunakan klien SMS yang ada untuk mengirim SMS.
Menggunakan Built-in Intent untuk mengirim SMS
Anda dapat menggunakan Android Intent untuk mengirim SMS dengan memanggil fungsi built-in SMS dari Android. Bagian berikut menjelaskan bagian-bagian yang berbeda dari objek Intent kami diminta untuk mengirim SMS.
Intent Obyek - Aksi untuk mengirim SMS
Anda akan menggunakan tindakan ACTION_VIEW untuk meluncurkan klien SMS diinstal pada perangkat Android Anda. Berikut adalah sintaks sederhana untuk membuat maksud dengan tindakan ACTION_VIEW
Intent smsIntent = new Intent(Intent.ACTION_VIEW);
Intent Object - Data / Type untuk mengirim SMS
Untuk mengirim SMS Anda perlu menentukan smsto: sebagai URI menggunakan setData () metode dan jenis data akan ke vnd.android-dir / mms-sms menggunakan setType () metode sebagai berikut -
smsIntent.setData(Uri.parse("smsto:")); smsIntent.setType("vnd.android-dir/mms-sms");
Intent Obyek - Extra untuk mengirim SMS
Android telah built-in mendukung untuk menambah nomor telepon dan pesan teks untuk mengirim SMS sebagai berikut -
smsIntent.putExtra("address" , new String("0123456789;3393993300")); smsIntent.putExtra("sms_body" , "Test SMS to Angilla");
Berikut alamat dan sms_body adalah case sensitif dan harus ditentukan dalam karakter kecil saja. Anda dapat menentukan lebih dari satu nomor dalam string tunggal tetapi dipisahkan oleh titik koma (;).
Contoh
Berikut contoh menunjukkan Anda dalam praktis bagaimana menggunakan objek Intent untuk meluncurkan klien SMS untuk mengirim SMS ke penerima yang diberikan.
Untuk bereksperimen dengan contoh ini, Anda akan membutuhkan perangkat mobile yang sebenarnya dilengkapi dengan Android OS terbaru, jika tidak Anda akan harus berjuang dengan emulator yang mungkin tidak bekerja.
1 Anda akan menggunakan Android studio IDE untuk membuat aplikasi Android dan nama itu sebagai unggul bawah com.example.unggul paket. Sementara menciptakan proyek ini, pastikan Anda Targetkan SDK dan Kompilasi Dengan di versi terbaru dari Android SDK untuk menggunakan tingkat yang lebih tinggi dari API.
2 Memodifikasi src MainActivity.java berkas / dan menambahkan kode yang diperlukan untuk mengurus pengiriman SMS.
3 Memodifikasi file layout XML res / layout / activity_main.xml menambahkan komponen GUI jika diperlukan. Saya menambahkan tombol sederhana untuk memulai Client SMS.
4 Tidak perlu menentukan standar constants.Android studio mengurus konstanta default.
5 Modify AndroidManifest.xml seperti yang ditunjukkan di bawah ini
6 Jalankan aplikasi untuk meluncurkan Android emulator dan memverifikasi hasil dari perubahan yang dilakukan dalam aplikasi.
Berikut ini adalah isi dari file utama kegiatan src / com.example.unggul / MainActivity.java dimodifikasi.
package com.example.unggul; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button startBtn = (Button) findViewById(R.id.button); startBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { sendSMS(); } }); } protected void sendSMS() { Log.i("Send SMS", ""); Intent smsIntent = new Intent(Intent.ACTION_VIEW); smsIntent.setData(Uri.parse("smsto:")); smsIntent.setType("vnd.android-dir/mms-sms"); smsIntent.putExtra("address" , new String ("01234")); smsIntent.putExtra("sms_body" , "Test "); try { startActivity(smsIntent); finish(); Log.i("Finished sending SMS...", ""); } catch (android.content.ActivityNotFoundException ex) { Toast.makeText(MainActivity.this, "SMS faild, please try again later.", Toast.LENGTH_SHORT).show(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
Berikut akan menjadi isi dari res / layout / activity_main.xml file -
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Drag and Drop Example" android:id="@+id/textView" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:textSize="30dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="unggul" android:id="@+id/textView2" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" android:textSize="30dp" android:textColor="#ff14be3c" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:src="@drawable/abc" android:layout_marginTop="48dp" android:layout_below="@+id/textView2" android:layout_centerHorizontal="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Compose SMS" android:id="@+id/button" android:layout_below="@+id/imageView" android:layout_alignRight="@+id/textView2" android:layout_alignEnd="@+id/textView2" android:layout_marginTop="54dp" android:layout_alignLeft="@+id/imageView" android:layout_alignStart="@+id/imageView" /> </RelativeLayout>
Berikut akan menjadi isi dari res / values / strings.xml untuk mendefinisikan dua konstanta baru -
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">unggul</string> <string name="action_settings">Settings</string> </resources>
Berikut ini adalah isi default AndroidManifest.xml -
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.unggul" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="22" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.unggul.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Mari kita coba untuk menjalankan aplikasi unggul Anda. Saya berasumsi bahwa Anda telah menghubungkan perangkat Android Ponsel yang sebenarnya Anda dengan komputer Anda. Untuk menjalankan aplikasi dari studio Android, buka salah satu file kegiatan proyek Anda dan klik Run Run Eclipse Icon icon dari toolbar. Sebelum memulai aplikasi Anda, Android studio akan menampilkan berikut jendela untuk memilih pilihan di mana Anda ingin menjalankan aplikasi Android Anda.
Pilih perangkat mobile Anda sebagai pilihan dan kemudian memeriksa perangkat mobile Anda yang akan menampilkan layar berikut:
Sekarang gunakan tombol Compose SMS untuk meluncurkan Android built-in klien SMS yang ditunjukkan di bawah ini:
Anda dapat memodifikasi salah satu bidang default yang diberikan dan akhirnya menggunakan tombol kirim SMS untuk mengirim SMS Anda ke penerima yang disebutkan.
thank kk
ReplyDeleteCaranya agar mengirim sms lebih dari satu nomor bagaimana? dengan isi pesan yang sama
ReplyDeletemampir juga di tutorial q ya bang...
ReplyDeleteAndroid Tutorial