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


Android GCM con sabores de producto

Tengo GCM muestra androide gradle proyecto. Su funcionado bien, cuando agrego 2 sabores una notificación del empuje paró para trabajar. Mi archivo de manifiesto de compilación (se toma de app\build\intermediates\manifests\ex\debug ) se encuentra a continuación:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.flavor.app" <uses-permission android:name="com.flavor.app.permission.C2D_MESSAGE" /> <permission android:name="com.flavor.app.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> <category android:name="com.flavor.app" /> </intent-filter> </receiver> <service android:name="com.ex.app.GCMIntentService" /> <service android:name="com.ex.app.AppLocationService" class=".AppLocationService" > <intent-filter> <action android:name=".AppLocationService" android:value=".AppLocationService" /> </intent-filter> </service> 

¿Qué debo hacer para solucionar este problema? Por favor ayuda.

  • DexIndexOverflowException sólo al ejecutar pruebas
  • Cambio del mensaje de diálogo de progreso durante la ejecución
  • Material Android alineando la línea de base de la fuente con una cuadrícula de 4dp
  • ¿Cómo puedo pasar valores entre un cuadro de diálogo y una actividad?
  • Monitorizar todos los eventos de dispositivos Android de forma remota
  • ConnectedAndroidTest y tipo de compilación de liberación
  • UPD1. Estoy usando gradle v.0.12 +. Creo que mi archivo de manifiesto final se ve bien, GCMRegistrar.checkManifest (this); – sin errores, pero GCMRegistrar.isRegistered (este) siempre es falso. = (

    UPD2. Mi primer proyecto de sabor con el nombre del paquete original (como proyecto en la rama principal) funciona bien, pero el segundo sabor con el paquete cambiado no funciona (registrationId para push sigue vacío), pero en el archivo de manifiesto todas las permiciones son correctas.

  • Cómo eliminar el valor predeterminado en spinner android?
  • Androide: barra de progreso horizontal indeterminada (diálogo)
  • Recursos de referencia en javadoc
  • ¿Cómo puedo cambiar las acciones de Action Bar de forma dinámica?
  • Ocultar teclado después de búsquedas de usuarios?
  • Programe agregar fragmentos a viewgroup
  • 3 Solutions collect form web for “Android GCM con sabores de producto”

    Simpy utiliza el alias ${applicationId} como este

     <permission android:name= "${applicationId}.permission.C2D_MESSAGE" android:protectionLevel= "signature" /> <uses-permission android:name= "${applicationId}.permission.C2D_MESSAGE" /> <uses-permission android:name= "com.google.android.c2dm.permission.RECEIVE" /> 

    Y para el receptor correspondiente use esto

      <receiver android:name = "com.mixpanel.android.mpmetrics.GCMReceiver" android:permission = "com.google.android.c2dm.permission.SEND"> <intent-filter> <action android:name = "com.google.android.c2dm.intent.RECEIVE"/> <action android:name = "com.google.android.c2dm.intent.REGISTRATION"/> <category android:name = "${applicationId}"/> </intent-filter> </receiver> 

    He encontrado la solución en este post GCM no se registra al cambiar el nombre del paquete con Gradle . Acabo de anular BroadcastReceiver, si alguien puede explicar por qué ayuda por favor dígame.

    Agregue el siguiente código en las aplicaciones build.gradle que copiará el archivo json de flovour seleccionado en la carpeta de la aplicación.

     gradle.taskGraph.beforeTask { Task task -> if(task.name ==~ /process.*GoogleServices/) { android.applicationVariants.all { variant -> if(task.name ==~ /(?i)process${variant.name}GoogleServices/){ copy { from "/src/${variant.flavorName}" into '.' include 'google-services.json' } } } } } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.