Saya telah membaca banyak posting dan mencoba banyak solusi, tetapi poin umum dari semua posting adalah bahwa mereka semua sudah ketinggalan zaman dan setidaknya saya tidak dapat menemukan solusi yang akan bekerja pada versi Android yang lebih baru.
Posting 1 , Hasil:
intent.getExtras().getInt("simId", -1)
selalu mengembalikan -1
Posting 2 , Hasil: intent.getExtras().getInt("slot", -1)
selalu mengembalikan -1
Posting 3 , Hasil:
String[] array = new String[]{
"extra_asus_dial_use_dualsim",
"com.android.phone.extra.slot",
"slot",
"simslot",
"sim_slot",
"subscription",
"Subscription",
"phone",
"com.android.phone.DialingMode",
"simSlot",
"slot_id",
"simId",
"simnum",
"phone_type",
"slotId",
"slotIdx"
};
for (String item :
array) {
Log.i(TAG, "Sim Card - " + item + " -----> " + intent.getExtras().getInt(item));
}
Log:
PhoneCallReceiver: Sim Card - extra_asus_dial_use_dualsim -----> 0
PhoneCallReceiver: Sim Card - com.android.phone.extra.slot -----> 0
PhoneCallReceiver: Sim Card - slot -----> 0
PhoneCallReceiver: Sim Card - simslot -----> 0
PhoneCallReceiver: Sim Card - sim_slot -----> 0
PhoneCallReceiver: Sim Card - subscription -----> 0
PhoneCallReceiver: Sim Card - Subscription -----> 0
PhoneCallReceiver: Sim Card - phone -----> 0
PhoneCallReceiver: Sim Card - com.android.phone.DialingMode -----> 0
PhoneCallReceiver: Sim Card - simSlot -----> 0
PhoneCallReceiver: Sim Card - slot_id -----> 0
PhoneCallReceiver: Sim Card - simId -----> 0
PhoneCallReceiver: Sim Card - simnum -----> 0
PhoneCallReceiver: Sim Card - phone_type -----> 0
PhoneCallReceiver: Sim Card - slotId -----> 0
PhoneCallReceiver: Sim Card - slotIdx -----> 0
ini menampilkan log yang sama dengan nilai 0 yang sama untuk SimCard pertama dan SimCard kedua.
Saya juga sudah mencoba posting serupa lainnya. Tidak ada yang bekerja pada versi baru Android!
Apakah ada solusi lain yang berfungsi pada Android versi terbaru (7.0 atau lebih tinggi)?
java
android
broadcastreceiver
dual-sim
incoming-call
Alireza Noorali
sumber
sumber
intent.getExtras().getInt("item")
<- Bukankah seharusnya kamu menggunakanitem
bukan"item"
?"item"
hampir pasti salah dalam konteks ini. Seperti yang saya katakan, coba cetak apa yang Anda miliki daripada apa yang Anda harapkan. Meskipun seluruh solusi ini terlihat seperti sedikit peretasan, jadi kunci apa pun yang dapat digunakan yang Anda temukan mungkin masih tidak berfungsi pada beberapa perangkat.Jawaban:
Secara resmi, satu-satunya nilai yang didokumentasikan yang disediakan oleh maksud adalah nomor telepon.
Beberapa konstruktor menambahkan nilai lain seperti nomor slot sim dalam maksud, tetapi ini tidak wajib. Inilah sebabnya mengapa ada begitu banyak nama kunci slot yang mungkin, seperti yang disajikan pada pos 3 , masing-masing konstruktor menambahkan implementasinya sendiri.
Mungkin juga beberapa konstruktor tidak menambahkan nilai ini dalam beberapa model, dan itu tentu terjadi pada model Anda. Tidak ada cara untuk menemukan nilai ini jika konstruktor tidak memberikannya.
sumber
Jika Anda telah melakukan ini, itu akan berhasil. pastikan perangkat pengujian Anda berjalan pada Android 5.1 atau lebih tinggi. dukungan dual sim ditambahkan dalam v 5.1 (Periksa di sini )
Pastikan Anda menambahkan izin di bawah ini dalam manifes
CATATAN :
Nilai-nilai ini tidak perlu datang sepanjang waktu. Diperlukan dukungan penyedia jaringan. Baca dokumentasi di sini
sumber
READ_PHONE_STATE
izin tetapi saya selalu mendapatkancallingSIM = -1