Moja aplikacja nie odbiera wiadomości SMS po zainstalowaniu aplikacji Go SMS. Ustawiłem najwyższy priorytet i próbowałem zainstalować moją aplikację przed zainstalowaniem aplikacji Go SMS. Jednak Go SMS zawsze wysyła SMS-y przed moim. (Pierwsza koncepcja zainstalowanej aplikacji nie działa na moim telefonie.)Nie otrzymasz wiadomości SMS nawet po ustawieniu najwyższego priorytetu i zainstalowaniu najpierw
Jestem ciekaw, co robią twórcy Go SMS. Jak ich aplikacja może zawsze przechwytywać SMS-y przed odebraniem?
Moja aplikacja działa poprawnie bez wiadomości SMS. Tak czy inaczej, oto mój manifest. Może zrobiłem coś złego.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.ansmsreceiver"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.test.ansmsreceiver.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="com.test.ansmsreceiver.SMSReceiver" >
<intent-filter android:priority="2147483647">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
<action android:name="android.provider.Telephony.NEW_OUTGOING_SMS" />
</intent-filter>
</receiver>
</application>
znalazłem inny questions podobne do mojego problemu, ale wciąż nie może znaleźć sposób, aby go naprawić.
Edycja: mój projekt testowy jest na Github: https://github.com/entryleveldev/ansmsreceiver.
Edycja2: wciąż nie wiem, jak Android decyduje, który odbiornik najpierw ma zamiar. Z tego, co testowałem, Go SMS zawsze ma intencje. UID i kolejność instalacji nie mają znaczenia. Ale kiedy testowałem moją aplikację i Handcent SMS, kolejność instalacji ma znaczenie. Może Go SMS używa jakiegoś hacky do zrobienia tego.
Oto manifest SmsReceiver w Go SMS.
<receiver android:name=".smspopup.SmsReceiver" android:permission="android.permission.BROADCAST_SMS">
<intent-filter android:priority="2147483647">
<action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
<intent-filter android:priority="2147483647">
<action android:name="android.provider.Telephony.GSM_SMS_RECEIVED"></action>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
<intent-filter >
<action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED"></action>
<data android:mimeType="application/vnd.wap.mms-message"></data>
</intent-filter>
<intent-filter >
<action android:name="com.android.mms.transaction.MESSAGE_SENT"></action>
</intent-filter>
</receiver>
Ich domyślnym ustawieniem jest wyłączenie powiadomienia o innych wiadomościach (abortBroadcast). To jest dla mnie naprawdę złe.
Czy próbowałeś skopiować swoje filtry zamiarów i sprawdzić, czy to coś zmieniło? – Darwind
Próbowałem tego. – pt2121
Hmm ok - sam mam ten sam problem w mojej aplikacji, ale ja po prostu z tym mieszkam ;-) Dodałeś także znacznik zezwalający na odbiorniku, tak jak oni to zrobili? Jeśli nie można zmienić priorytetu, muszą użyć jakiegoś hacka, aby to zadziałało. – Darwind