Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


No obtener sms incluso cuando se establece la mayor prioridad e instaló primero

Mi aplicación no recibe SMS cuando Go SMS está instalado. He establecido la máxima prioridad y he intentado instalar mi aplicación antes de instalar la aplicación Go SMS. Sin embargo, Go SMS siempre recibe SMS antes de la mía. (El concepto de primera aplicación instalada no funciona en mi teléfono.)

Tengo curiosidad por lo que hacen los desarrolladores de Go SMS. ¿Cómo puede su aplicación siempre interceptar SMS antes de la mía?

Mi aplicación funciona bien sin el Go SMS. De todos modos, aquí está mi manifiesto. Tal vez he hecho algo mal.

<?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> 

Encontré otras preguntas relacionadas con mi problema, pero todavía no puedo encontrar la manera de arreglarlo.

Editar: mi proyecto de prueba está en Github: https://github.com/entryleveldev/ansmsreceiver .

Edit2: todavía no está seguro de cómo android decide qué receptor obtener la intención en primer lugar. De lo que he probado, Go SMS siempre obtiene la intención. El UID y el orden de instalación no importan. Pero cuando probé mi aplicación y Handcent SMS, la orden de instalación importa. Tal vez Ir SMS utiliza algún tipo de forma hacky para hacer esto.

Aquí está el SmsReceiver en Go SMS manifiesto.

 <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> 

Su configuración predeterminada es desactivar la notificación de otro mensaje (abortBroadcast). Esto es realmente malo para mí.

  • Diferencia entre el intento.setClass () y el intento.setComponent ()
  • Cómo volver a una actividad específica si las actividades son implementadas por la misma clase
  • Android: reanudar la aplicación desde la posición anterior
  • ¿Qué filtros de intención debe cubrir mi aplicación para aparecer en el selector cuando solicita una imagen de una aplicación externa?
  • ¿Cómo enviar un objeto de una actividad de Android a otro usando Intents?
  • Android: ¿puedo pasar un parámetro al iniciar otras aplicaciones de mi aplicación?
  • Intent.ACTION_GET_CONTENT con Google Drive
  • ¿Cuál es el propósito de usar Intent.createChooser () en StartActivity () al enviar correo electrónico en Android
  • 2 Solutions collect form web for “No obtener sms incluso cuando se establece la mayor prioridad e instaló primero”

    He enfrentado el mismo problema.

    Según la documentación de Android, la prioridad más alta debe ser 1000 http://developer.android.com/reference/android/content/IntentFilter.html#SYSTEM_HIGH_PRIORITY

    Pero esta aplicación está usando una prioridad más alta evadiendo las pautas.

    http://forum.avast.com/offline/forum.theftaware.com/viewtopic5dcd.html

    No seas malo Es mejor seguir las directrices.

    Aclamaciones

    Como la pregunta que está vinculando a explica, una vez que el receptor de la aplicación GO SMS se llama, pueden llamar abortBroadcast() . Suponiendo que están utilizando la prioridad más alta posible (= 2147483647), yo asumiría que el siguiente fragmento de los documentos se aplicaría:

    Los receptores de órdenes que se ejecutan pueden ser controlados con el atributo android: priority del filtro de intención coincidente; Receptores con la misma prioridad se ejecutarán en un orden arbitrario.

    Sin embargo, ya que siempre suceden a interceptar SMS antes de su aplicación, yo asumiría que la magia está en otro lugar. Entre sus permisos, tienen lo siguiente:

    • "Android.permission.PERSISTENT_ACTIVITY"
    • "Android.permission.WRITE_SMS"
    • "Android.permission.READ_SMS"

    ¿Le importaría probar una combinación de estos, para ver si afecta a la orden de resolución de intención?

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.