Mengapa java salah, bukankah Anda memprogram java di Android?
jitter
3
Ini berbau kejahatan. Anda seharusnya tidak melakukan ini.
MattC
43
Ada kegunaan yang sah! Misalnya jika Anda ingin melakukan sesuatu (mengirim lokasi GPS, menghapus atau sesuatu) pada ponsel Anda melalui SMS jika ponsel dicuri; Anda tidak ingin siapapun yang mencuri telepon melihat pesan SMS itu.
poliglot
21
Ayo semuanya! Ini jelas TIDAK "jahat" sama sekali. @polyglot benar! Saya melakukan aplikasi untuk mengonfirmasi nomor pengguna (seperti yang dilakukan Viber) dan saya membutuhkannya. Semuanya bisa digunakan sebagai "kejahatan". Jangan memasang aplikasi jahat, hanya itu.
Felipe
Jawaban:
187
Iya.
Terlepas dari beberapa reaksi negatif terhadap pertanyaan ini, ada penggunaan yang sah untuk intersepsi SMS. Misalnya: mengotomatiskan verifikasi nomor telepon, layanan yang disediakan melalui SMS (meskipun umumnya hal ini harus dilakukan dengan SMS data), atau untuk aplikasi yang meningkatkan pengalaman pengguna dengan memproses pesan yang diformat khusus untuk ditampilkan di Android yang bagus UI -specific.
Mulai Android 1.6, siaran pesan SMS yang masuk ( android.provider.Telephony.SMS_RECEIVED) dikirim sebagai " siaran yang dipesan " - artinya Anda dapat memberi tahu sistem komponen mana yang harus menerima siaran terlebih dahulu.
Jika Anda menentukan android:priorityatribut pada mendengarkan SMS <intent-filter>, Anda akan menerima pemberitahuan sebelum aplikasi SMS asli.
Pada tahap ini, Anda dapat membatalkan siaran, mencegahnya disebarkan ke aplikasi lain.
Ya Tuhan. Ini benar! Saya selalu berasumsi bahwa yang terjadi adalah sebaliknya! Buktinya, lihat di sini . Wow. Seandainya saya bisa memberi Anda lebih dari satu suara positif;)
Hamy
1
@kakopappa: Ya, seperti yang disebutkan dalam jawaban, ini berfungsi dari Android 1.6+.
Christopher Orr
1
@herom Saya memiliki aplikasi yang menggunakan prioritas 1000, jadi itu mungkin. Faktanya, Handcent menggunakan prioritas 2147483647.
Christopher Orr
2
Ini berhasil bagi saya untuk :) Aplikasi saya menangkap pesan terlebih dahulu dan tidak ada pemberitahuan tetapi kemudian sms tidak masuk ke kotak masuk Pesan. Seperti tidak pernah diterima, hanya di aplikasi saya. Apakah ada cara untuk menggunakan batalkan siaran tetapi menerima pesan di kotak masuk?
pandabear
7
Penting untuk mengingat API level 19 baru seperti yang dikatakan @ChristopherOrr dalam pembaruannya. Di sana tertulis "Beginning with Android 4.4—any attempt by your app to abort the SMS_RECEIVED_ACTION broadcast will be ignored so all apps interested have the chance to receive it.".
GoRoS
11
Langkah-1: Buat penerima siaran khusus Anda untuk menerima sms. tulis logika untuk membatalkan luas sehingga pesan tidak akan tersedia di kotak masuk Anda
Karena menerima siaran SMS adalah siaran yang dipesan, penerima dengan prioritas tinggi akan menerima terlebih dahulu sehingga aplikasi Anda menerima terlebih dahulu dan setelah menerima Anda membatalkan siaran. Jadi tidak ada aplikasi lain yang bisa menerimanya. Karenanya sms tidak akan ada di inbox
dapatkah kita memiliki penerima siaran, ketika pengguna menekan kotak masuk pesan, sehingga saya dapat mengembangkan layar kunci ..
Vamsi Pavan Mahesh
9
Solusi di bawah ini ("android: priority" dan abortBroadcast ()) berfungsi selama aplikasi Perpesanan Android sebagai default (maksud saya aplikasi perpesanan Android stok). Jika pengguna menginstal "GoSMSPro" atau "HandcentSMS", aplikasi ini masih menampilkan pesan di kotak masuk, saya yakin ini karena "android: priority". Saya tidak melihat cara yang lebih baik untuk memperbaiki masalah di atas, jika aplikasi perpesanan pihak ketiga diinstal di telepon.
Poin yang bagus. Tapi ini harus menjadi komentar, bukan jawaban. Apakah mungkin untuk dipindahkan? --- dan bagaimana jika Anda memberi nilai yang sangat tinggi? Sebagai android: priority = "9999"? sebagai contoh? Sudahkah kamu mencobanya?
Felipe
4
@FelipeMicaroniLalli sebenarnya GO SMS PRO, dll ... gunakan 2147483647 untuk prioritas mereka
@NomanHamid Itu benar. 999 adalah prioritas maksimal. Anda dapat menggunakan nomor apa pun yang Anda pilih, Android hanya akan menjamin hingga 999. Sesuatu yang lebih besar dari itu dan mungkin atau mungkin tidak tidak stabil dan memiliki konsekuensi yang tidak diinginkan. Secara pribadi, saya harus menggunakan 2147483647 untuk mencoba membuka aplikasi seperti GO SMS PRO. Terkadang itu berhasil untuk pengguna dan terkadang tidak.
Jika Anda memiliki skenario seperti ini dan Anda ingin menghapus atau mengabaikan pesan yang terkait dengan nomor kontak ini "+ 44xxxxx" dll, maka gunakan kode ini di penerima Siaran SMS
Jawaban:
Iya.
Terlepas dari beberapa reaksi negatif terhadap pertanyaan ini, ada penggunaan yang sah untuk intersepsi SMS. Misalnya: mengotomatiskan verifikasi nomor telepon, layanan yang disediakan melalui SMS (meskipun umumnya hal ini harus dilakukan dengan SMS data), atau untuk aplikasi yang meningkatkan pengalaman pengguna dengan memproses pesan yang diformat khusus untuk ditampilkan di Android yang bagus UI -specific.
Mulai Android 1.6, siaran pesan SMS yang masuk (
android.provider.Telephony.SMS_RECEIVED
) dikirim sebagai " siaran yang dipesan " - artinya Anda dapat memberi tahu sistem komponen mana yang harus menerima siaran terlebih dahulu.Jika Anda menentukan
android:priority
atribut pada mendengarkan SMS<intent-filter>
, Anda akan menerima pemberitahuan sebelum aplikasi SMS asli.Pada tahap ini, Anda dapat membatalkan siaran, mencegahnya disebarkan ke aplikasi lain.
Pembaruan (Oktober 2013): Saat Android 4.4 tiba, itu akan membuat perubahan pada API SMS yang dapat memengaruhi kemampuan aplikasi untuk memengaruhi pengiriman SMS.
Lihat entri blog Pengembang Android ini untuk info lebih lanjut:
http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html
sumber
1000
, jadi itu mungkin. Faktanya, Handcent menggunakan prioritas2147483647
."Beginning with Android 4.4—any attempt by your app to abort the SMS_RECEIVED_ACTION broadcast will be ignored so all apps interested have the chance to receive it."
.Langkah-1: Buat penerima siaran khusus Anda untuk menerima sms. tulis logika untuk membatalkan luas sehingga pesan tidak akan tersedia di kotak masuk Anda
Langkah-2 Daftarkan penerima siaran di AndoridManifest dan masukkan android: nilai prioritas dengan angka yang besar
Itu dia
Bagaimana cara kerja kode di atas
Karena menerima siaran SMS adalah siaran yang dipesan, penerima dengan prioritas tinggi akan menerima terlebih dahulu sehingga aplikasi Anda menerima terlebih dahulu dan setelah menerima Anda membatalkan siaran. Jadi tidak ada aplikasi lain yang bisa menerimanya. Karenanya sms tidak akan ada di inbox
sumber
Solusi di bawah ini ("android: priority" dan abortBroadcast ()) berfungsi selama aplikasi Perpesanan Android sebagai default (maksud saya aplikasi perpesanan Android stok). Jika pengguna menginstal "GoSMSPro" atau "HandcentSMS", aplikasi ini masih menampilkan pesan di kotak masuk, saya yakin ini karena "android: priority". Saya tidak melihat cara yang lebih baik untuk memperbaiki masalah di atas, jika aplikasi perpesanan pihak ketiga diinstal di telepon.
sumber
Periksa prioritas dan tetapkan prioritas yang lebih tinggi (dalam manifes Anda) daripada penerima lainnya.
sumber
Jika Anda memiliki skenario seperti ini dan Anda ingin menghapus atau mengabaikan pesan yang terkait dengan nomor kontak ini "+ 44xxxxx" dll, maka gunakan kode ini di penerima Siaran SMS
Anda juga harus menetapkannya sebagai prioritas tinggi.
sumber