Birkaç kaynak ve sorudan geçtikten sonra, gelen bir SMS mesajını tespit etme konusunda hala bir sorunla karşılaşıyorum.BroadcastReceiver SMS_Received yeni cihazlarda çalışma yok
aşağıdaki kod temellerini göstermektedir: görüntüler
Yayın alıcı sınıfı tost OnReceive alıcıyı ve izinleri
<application
<receiver
android:name=".IncomingSms"
android:permission="android.permission.BROADCAST_SMS"
android:exported="true">
<intent-filter android:priority="2147483647" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
Yukarıdaki kod kayıt ile Manifest Basit
public class IncomingSms extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "something received", Toast.LENGTH_SHORT).show();
}
}
Alıcıyı beyan eder, kaydeder ve provoke eder. r izinleri. Ayrıca öncelik, MAX_INT veya 2147483647 olarak ayarlanmıştır.
Cihazım varsayılan olarak Messenger uygulaması yüklü Nexus 6P'dir (ayrıca Hangouts'u denedim). Uygulama hala benim tostlarımı göstermiyor. Eski bir Samsung cihazını denedikten sonra tostlar düzgün bir şekilde basıldı.
Ben 6P'de yüklü
Öncelikli konu benim cihazda yüklü uygulamaların manifest.xml görmenizi sağlar Manifest Görüntüleyici denilen bir uygulama. Hem Messenger hem de Hangout'ların manifestolarını, SMS etiketinin alıcısı için kontrol ettim ve her ikisinin de 2147483647 önceliğini belirlediğini fark ettim. Her iki haberci uygulaması da önceliği maksimuma çıkarmış gibi görünüyor ve mesajı kullandıktan sonra diğer uygulamaların müdahale etmesine izin verme. Bunların 3. taraf değil, stok Google uygulamaları olduğunu unutmayın. Bu noktada
, ben olarak oldukça karıştı:
- neden böyle bir şey yapsın?
- nasıl atlanır?
Çok teşekkürler
Ayrıca Nexus 6P var. İhtiyacım olana teşekkürler! Teşekkürler – RJB
Teşekkür ederim, harika yazı, çok yararlı. Her ne kadar problemin, Nexus cihazına değil, API 23 seviyesine daha çok bağlı olduğu izlenimine kapıldım. Ve belki de unutmamalısınız ki son geçersiz kılma gerçekten gerekli değil, sadece kod kopyalama zombileri benim için orada gibi ;-) – anhoppe