Saya menggunakan kode berikut untuk melakukan panggilan di Android tetapi memberi saya pengecualian keamanan tolong bantu.
posted_by = "111-333-222-4";
String uri = "tel:" + posted_by.trim() ;
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(uri));
startActivity(intent);
izin
<uses-permission android:name="android.permission.CALL_PHONE" />
Pengecualian
11-25 14:47:01.661: ERROR/AndroidRuntime(302): Uncaught handler: thread main exiting due to uncaught exception
11-25 14:47:01.681: ERROR/AndroidRuntime(302): java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:111-333-222-4 cmp=com.android.phone/.OutgoingCallBroadcaster } from ProcessRecord{43d32508 302:com.Finditnear/10026} (pid=302, uid=10026) requires android.permission.CALL_PHONE
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.os.Parcel.readException(Parcel.java:1218)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.os.Parcel.readException(Parcel.java:1206)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1214)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1373)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.app.Activity.startActivityForResult(Activity.java:2749)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.app.Activity.startActivity(Activity.java:2855)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at com.Finditnear.PostDetail$2$1$1$1.onClick(PostDetail.java:604)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:884)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.widget.ListView.performItemClick(ListView.java:3285)
11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1640)
Demo ini akan membantu Anda ...
Klik tombol panggil:
Izin dalam Manifes:
sumber
Opsi yang lebih elegan:
sumber
Gunakan tindakan ACTION_DIAL sesuai keinginan Anda, dengan cara ini Anda tidak perlu izin apa pun. Alasan Anda memerlukan izin dengan ACTION_CALL adalah untuk membuat panggilan telepon tanpa tindakan apa pun dari pengguna.
sumber
Semuanya baik-baik saja.
saya baru saja menempatkan tag izin panggilan sebelum tag aplikasi dalam file manifes
dan sekarang semuanya bekerja dengan baik.
sumber
CATATAN PENTING:
Jika Anda menggunakan,
Intent.ACTION_CALL
Anda harus menambahkanCALL_PHONE
izin.Okey hanya jika Anda tidak ingin aplikasi Anda muncul di google play untuk tablet yang tidak mengambil kartu SIM atau tidak memiliki GSM.
DALAM AKTIVITAS ANDA:
NYATA:
Jadi, jika ini bukan fitur penting untuk aplikasi Anda, cobalah untuk tidak menambahkan
CALL_PHONE
izin.SOLUSI LAINNYA:
Adalah untuk menunjukkan aplikasi Telepon dengan nomor yang tertulis di layar, sehingga pengguna hanya perlu mengklik tombol panggil:
Tidak diperlukan izin untuk ini.
sumber
Cukup oneliner sederhana tanpa izin tambahan yang diperlukan:
sumber
gunakan kode lengkap ini
sumber
Minta Izin dalam manifes
Untuk panggilan gunakan kode ini
sumber
Izin di AndroidManifest.xml
Kode lengkap:
sumber
Izin:
Maksud:
sumber
Anda dapat menggunakan ini juga:
sumber
Untuk melakukan aktivitas panggilan menggunakan maksud, Anda harus meminta izin yang tepat.
Untuk itu Anda sertakan menggunakan izin dalam file AndroidManifest.xml.
Kemudian sertakan kode berikut dalam aktivitas Anda
sumber
Untuk panggilan dari dialer (Tidak diperlukan izin):
Untuk panggilan langsung dari aplikasi (Diperlukan izin):
Izin:
sumber
Untuk menghindari ini - seseorang dapat menggunakan GUI untuk memasukkan izin. Eclipse mengurus di mana harus memasukkan tag izin dan lebih sering tidak benar
sumber
sumber
Di Android untuk fungsionalitas tertentu, Anda perlu menambahkan izin ke file Manifest.
6. Simpan file manifes dan kemudian jalankan proyek Anda. Proyek Anda sekarang harus berjalan seperti yang diharapkan.
sumber
^ Jawabannya terletak pada output pengecualian "
requires android.permission.CALL_PHONE
" :)sumber
sumber
sumber