Advertisement
  1. Code
  2. Mobile Development
  3. Android Development

Android O: Telepon nomor verifikasi dengan SMS Token

Scroll to top
Read Time: 5 min

() 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.

Create a new Android Studio projectCreate a new Android Studio projectCreate a new Android Studio project

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.

Running the app at this pointRunning the app at this pointRunning the app at this point

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.

Showing how to use the Emulator to simulate sending an SMS messageShowing how to use the Emulator to simulate sending an SMS messageShowing how to use the Emulator to simulate sending an SMS message

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

Sending a message with emulatorSending a message with emulatorSending a message with emulator

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.

Token result activity Token result activity Token result activity

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!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.