Android O: Telepon nomor verifikasi dengan SMS Token
() translation by (you can also view the original English article)
Dalam tutorial ini, Anda akan belajar tentang keren SMS token fitur baru di Android O. Anda akan belajar bagaimana untuk menghasilkan token aplikasi-spesifik yang akan fire up pendign intent ketika perangkat menemerima pesan yang berisi token untuk memverifikasi nomor telepon.
Mohon dicatat bahwa seperti tulisan ini, Android O API masih versi third developer preview, meskipun final. (Kita masih belum tahu apa O singkatan belum!)
Apakah SMS Token?
SMS token atau one-time password adalah mekanisme keamanan digunakan untuk mengotentikasi atau memverifikasi user. User memasukan nomor telepon mereka, dan dalam waktu yang terbatas token ter-generate untuk user itu. Pengguna kemudian akan menerima token sebagai SMS ke ponsel mereka. Dalam kasus O Android seperti tulisan ini, token aplikasi-spesifik ini tidak expire, tetapi sebaliknya menjadi tidak invalid ketikan token yang lain ter-generate.
Mengapa menggunakan Android O SMS Token?
Salah satu alasan utama Anda mungkin mempertimbangkan menggunakan Android O SMS token mekanisme adalah bahwa hal ini meningkatkan pengalaman pengguna dari app. Pengguna tidak perlu menyalin dan menyisipkan token dari klien SMS untuk diverifikasi. Sebaliknya, perangkat Android secara otomatis mendeteksi token dikirim ke perangkat pengguna dan kemudian memicu komponen aplikasi dalam maksud yang berkaitan dengan aplikasi Anda (kami akan mendapatkan untuk yang segera).
Bahkan lebih baik, fungsi ini tidak memerlukan izin READ_SMS atau lainnya. Mekanisme ini juga meningkatkan keamanan pengguna aplikasi Anda, karena tidak ada aplikasi lain dapat membaca pesan yang berisi token pada perangkat.
Dalam tutorial ini, Anda akan belajar cara menggunakan fitur baru ini di Android O SMS API. Anda akan belajar bagaimana untuk menghasilkan SMS token khusus untuk aplikasi Anda dan mengirimkannya ke perangkat. Kita akan menggunakan emulator Android Studio untuk mensimulasikan proses ini.
Prasyarat
Ikuti bersama dengan tutorial ini, pastikan Anda download platform SDK Android 8.0 (O) pada komputer Anda dan memiliki sebuah emulator sudah mengatur target bahwa versi ini.
1. menghasilkan Token aplikasi-spesifik
Untuk memulai, saya akan menunjukkan kepada Anda bagaimana untuk menghasilkan token aplikasi-spesifik yang unik untuk aplikasi Anda pada perangkat pengguna.
Membuat proyek Android Studio baru
Jalankan Android studio dan membuat proyek baru dengan aktivitas kosong yang disebut MainActivity
.
Memodifikasi build.gradle File
Membuat perubahan berikut ke modul app Anda build.gradle file.
1 |
compileSdkVersion 'android-O' |
2 |
minSdkVersion 'o' |
3 |
targetSdkVersion 'o' |
Memodifikasi kelas MainActivity
Dalam snippet kode di bawah ini, kami mendapatkan kelas SMSManager
dan kemudian memanggil metode createAppSpecificSmsToken()
. Hal ini hanya apa yang dikatakan — menciptakan aplikasi-spesifik SMS token. Metode ini mengharuskan PendingIntent
yang berisi Activity akan dijalakan ketika SMS yang berisi token ini (string 11 karakter) diterima oleh perangkat.
1 |
import android.app.PendingIntent; |
2 |
import android.content.Intent; |
3 |
import android.os.Bundle; |
4 |
import android.support.v7.app.AppCompatActivity; |
5 |
import android.telephony.SmsManager; |
6 |
import android.util.Log; |
7 |
import android.widget.TextView; |
8 |
|
9 |
public class MainActivity extends AppCompatActivity { |
10 |
|
11 |
@Override
|
12 |
protected void onCreate(Bundle savedInstanceState) { |
13 |
super.onCreate(savedInstanceState); |
14 |
setContentView(R.layout.activity_main); |
15 |
|
16 |
TextView textView = (TextView) findViewById(R.id.tv_token); |
17 |
SmsManager smsManager = SmsManager.getDefault(); |
18 |
String appSmsToken = smsManager.createAppSpecificSmsToken(createSmsTokenPendingIntent()); |
19 |
|
20 |
textView.setText(appSmsToken); |
21 |
|
22 |
Log.i("MainActivity", "sms token " + appSmsToken); |
23 |
}
|
24 |
|
25 |
private PendingIntent createSmsTokenPendingIntent() { |
26 |
return PendingIntent.getActivity(this, 1234, |
27 |
new Intent(this, SmsTokenResultVerificationActivity.class), 0); |
28 |
}
|
29 |
}
|
Tolong garis bawahi, seperti yang dinyatakan sebelumnya, token dihasilkan unik untuk app Anda pada perangkat pengguna. Jika Anda membuat SMS token lain , yang kedua akan berlaku sementara token pertama akan diabaikan.
Lay Out layar
Berikut adalah tata letak MainActivity
file diatur untuk menampilkan SMS token yang dihasilkan:
1 |
<?xml version="1.0" encoding="utf-8"?>
|
2 |
<LinearLayout
|
3 |
xmlns:android="https://schemas.android.com/apk/res/android" |
4 |
xmlns:tools="http://schemas.android.com/tools" |
5 |
android:layout_width="match_parent" |
6 |
android:layout_height="match_parent" |
7 |
tools:context="com.chikeandroid.tutsplusandroidosmstoken.MainActivity" |
8 |
android:orientation="vertical" |
9 |
android:gravity="center_horizontal|center_vertical"> |
10 |
|
11 |
<TextView
|
12 |
android:text="APP SMS TOKEN GENERATED" |
13 |
android:layout_width="wrap_content" |
14 |
android:layout_height="wrap_content" |
15 |
android:textColor="@android:color/black"/> |
16 |
|
17 |
<TextView
|
18 |
android:id="@+id/tv_token" |
19 |
android:layout_marginTop="12dp" |
20 |
android:layout_width="wrap_content" |
21 |
android:layout_height="wrap_content" |
22 |
android:textAppearance="?android:textAppearanceLarge" |
23 |
android:textColor="@android:color/holo_red_dark"/> |
24 |
|
25 |
</LinearLayout>
|
Menjalankan app saat ini akan menunjukkan SMS token yang dihasilkan.



2. menerima SMS Token
Selanjutnya, kami akan membuat activty yang akan berjalan ketika perangkat kita akan menerima pesan yang mengandung SMS token. Tidak ada yang khusus untuk SMS Token yang terjadi di sini.
1 |
import android.app.Activity; |
2 |
import android.os.Bundle; |
3 |
|
4 |
public class SmsTokenResultVerificationActivity extends Activity { |
5 |
|
6 |
@Override
|
7 |
public void onCreate(Bundle savedInstanceState) { |
8 |
super.onCreate(savedInstanceState); |
9 |
setContentView(R.layout.activity_sms_token_result); |
10 |
}
|
11 |
}
|
Lay Out layar
Di sini kita menciptakan layout untuk activity yang kami ciptakan di atas yang berisi hanya satu TextView
.
1 |
<?xml version="1.0" encoding="utf-8"?>
|
2 |
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
3 |
android:orientation="vertical" |
4 |
android:layout_width="match_parent" |
5 |
android:layout_height="match_parent" |
6 |
android:gravity="center_horizontal|center_vertical"> |
7 |
|
8 |
<TextView
|
9 |
android:layout_width="wrap_content" |
10 |
android:layout_height="wrap_content" |
11 |
android:text="Token Result Activity" |
12 |
android:textColor="@android:color/holo_purple" |
13 |
android:textAppearance="?android:textAppearanceLarge" /> |
14 |
|
15 |
</LinearLayout>
|
Selanjutnya, kita akan menguji fungsi ini menggunakan emulator Android Studio.
3. tes SMS Token
Mengatur Emulator untuk mengirim pesan SMS
Anda dapat menggunakan emulator Anda untuk mensimulasikan menerima pesan SMS, tetapi Anda akan perlu untuk melakukan sedikit setup. Buka emulator Anda, klik tombol terakhir pada bar navigasi sebelah kanan untuk membuka extendec control dialog, dan kemudian pilih tombol kontrol telepon.



Dari antarmuka ini, Anda dapat mensimulasikan perangkat Anda menerima panggilan telepon atau SMS dari telepon lain.
Mengirim Token
Pastikan Anda telah mengatur emulator Anda bahwa target Android 8.0 (O). Menghasilkan tanda dan masukkan pesan teks yang berisi itu. Kemudian klik tombol Send Message



Akhirnya, activity kami ditentukan dalam pending intent dijalankan segera! Mencoba mengirimkan pesan sekali lagi dan melihat bahwa kali ini, itu akan muncul di klien SMS perangkat sebaliknya, karena itu tidak lagi berlaku.



Menggunakan Server
Untuk aplikasi produksi, SMS token akan biasanya Dikirim oleh server back-end. Jadi ketika menggunakan server, klien (app Anda) harus mengajukan permintaan ke server, termasuk app dihasilkan token, dan nomor telepon. Server Anda kemudian akan menerima permintaan ini dan kirim unmodified token kembali sebagai pesan teks ke ponsel pengguna. Aplikasi Anda kemudian akan menerima token ini dan menjalankan komponen yang terdaftar di pending intent. Komponen tersebut kemudian dapat membiarkan server tahu bahwa telepon nomor verifikasi atau pengguna otentikasi berhasil.
Kesimpulan
Dalam tutorial ini, Anda belajar tentang awesome SMS token fitur yang diperkenalkan di Android O: apa itu, manfaat, dan bagaimana untuk menggunakannya dalam aplikasi Android.
Untuk mempelajari lebih lanjut tentang Android SMS dan telepon api, termasuk bagaimana untuk membuat panggilan dari app Anda, memeriksa tutorial saya terkait di sini pada Envato Tuts +.
Dan memeriksa beberapa kursus dan tutorial di Android app development yang lainnya!