La mia app non riceve SMS quando è installato Go SMS. Ho impostato la massima priorità e ho provato a installare la mia app prima di installare l'app Go SMS. Tuttavia, Go SMS ottiene sempre SMS prima dei miei. (Il primo concetto installato sull'app non funziona sul mio telefono.)non ricevere sms anche quando si imposta la massima priorità e installato prima
Sono curioso di sapere cosa fanno gli sviluppatori di SMS. Come può la loro app intercettare sempre gli SMS prima dei miei?
La mia app funziona perfettamente senza Go SMS. Ad ogni modo, ecco il mio manifesto. Forse ho fatto qualcosa di sbagliato.
<?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>
ho trovato altri questions legati al mio problema, ma ancora non riesce a trovare il modo per risolvere il problema.
Modifica: il mio progetto di test è su Github: https://github.com/entryleveldev/ansmsreceiver.
Edit2: ancora non sono sicuro di come Android decida quale ricevitore ottenere l'intento prima. Da quello che ho provato, Go SMS ottiene sempre l'intento. UID e l'ordine di installazione non contano. Ma quando ho testato la mia app e Handcent SMS, l'ordine di installazione è importante. Forse Go SMS usa un qualche tipo di hacky per farlo.
Ecco il SmsReceiver nel manifest 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>
L'impostazione predefinita è disabilitare la notifica di altri messaggi (abortBroadcast). Questo è davvero cattivo per me.
Hai provato a copiare i loro filtri di intent e vedere se ha fatto la differenza? – Darwind
L'ho provato. – pt2121
Hmm ok - In realtà ho lo stesso problema in una mia app, ma ci sto semplicemente convivendo ;-) Hai anche aggiunto il tag di autorizzazione sul ricevitore come hanno fatto? Se non è possibile ignorare la loro priorità, devono usare un qualche tipo di trucco per farlo funzionare. – Darwind