جهاز استقبال البث الذي يعمل بنظام Android لرسائل SMS المرسلة؟
-
13-09-2019 - |
سؤال
لقد أنشأت أ BroadcastReceiver
وتكوينها مع android.provider.Telephony.SMS_RECEIVED
مرشح الحركة لذلك يطلق عليه في كل مرة الهاتف يتلقى نص.
هل هناك بعض الحدث / الإجراء أو بطريقة أخرى ليتم إخطار طلبي كلما الهاتف يرسل نص (يفضل أن يكون مستقلا عن التطبيق الذي يرسله)؟
حتى الآن الخيار الوحيد الذي أراه هو الاستطلاع لمزود المحتوى content://sms/sent
الذي لا يعطيني جميع النصوص المرسلة لأن التطبيقات يمكن أن تختار عدم وضعه هناك.
المحلول
لسوء الحظ هناك (حاليا) لا توجد طريقة لتنفيذ BroadcastReceiver
لأن تطبيق SMS القياسي يستخدم SmsManger
لإرسال الرسائل ولكنه يحدد فئات داخلية ملموسة للمحدة المرسلة والتسليم (SmsReceiver.class
و MessageStatusReceiver.class
على التوالى). ليس هذا هو أي عزاء ولكن يمكنك العثور على التعليق التالي في تطبيق SMS مصدر:
// TODO: Fix: It should not be necessary to
// specify the class in this intent. Doing that
// unnecessarily limits customizability.
أفضل بديل يبدو أن الاقتراع content://sms/sent
, يحتمل أن تستخدم ContentObserver
.