Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

101
Vistas
¿Cuáles son las posibles razones por las que mi AppWidgetProvider recibirá datos de una aplicación de terceros en onReceive?

Recientemente, estoy experimentando un extraño informe de bloqueo de Firebase Crashlytics.

 Caused by android.os.BadParcelableException: ClassNotFoundException when unmarshalling: id.dana.model.CurrencyAmountModel at android.os.Parcel.readParcelableCreator(Parcel.java:2305) at android.os.Parcel.readParcelable(Parcel.java:2255) at android.os.Parcel.readValue(Parcel.java:2162) at android.os.Parcel.readArrayMapInternal(Parcel.java:2495) at android.os.BaseBundle.unparcel(BaseBundle.java:221) at android.os.BaseBundle.getIntArray(BaseBundle.java:1164) at android.appwidget.AppWidgetProvider.onReceive(AppWidgetProvider.java:64) at com.yocto.wenote.widget.CalendarAppWidgetProvider.onReceive(CalendarAppWidgetProvider.java:234)

Me siento raro porque mi aplicación nunca tiene uso/acceso a la clase id.dana.model.CurrencyAmountModel . No tengo ni idea de dónde viene la clase id.dana.model.CurrencyAmountModel .

Parece que una aplicación de terceros puede "inyectar" datos en mi AppWidgetProvider .

Mi AppWidgetProvider se define de la siguiente manera.

 <receiver android:name="com.yocto.wenote.widget.CalendarAppWidgetProvider" android:label="@string/widget_calendar_name" android:exported="true" > <intent-filter > <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/calendar_widget_info" /> </receiver> public class CalendarAppWidgetProvider extends AppWidgetProvider { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); ... super.onReceive(context, intent); } }

¿Tiene alguna idea de por qué mi AppWidgetProvider recibe un id.dana.model.CurrencyAmountModel de datos desconocidos y cómo puedo evitarlo?

Gracias.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

¿Parece que una aplicación de terceros puede "inyectar" datos en mi AppWidgetProvider?

Por supuesto. Cualquier otra aplicación puede acceder públicamente a su AppWidgetProvider . Cualquier aplicación puede enviarle una transmisión que recogerá.

¿Tiene alguna idea de por qué mi AppWidgetProvider está recibiendo un id.dana.model.CurrencyAmountModel de datos desconocidos?

Algunas aplicaciones envían una transmisión con un modelo de cantidad de CurrencyAmountModel como extra. Según el seguimiento de la pila y la implementación de AppWidgetProvider , supongo que este valor no válido está bajo la clave AppWidgetManager.EXTRA_APPWIDGET_IDS . Con suerte, esto es un error en la otra aplicación y no algo malicioso.

¿Cómo puedo evitar eso?

AFAIK, se debe exportar un AppWidgetProvider para que funcione. Podría ejecutar un experimento y ver si android:exported="false" todavía le brinda un widget de aplicación que funciona, pero me sorprendería.

Si eso falla, puede envolver super.onReceive() en un bloque try / catch para evitar el bloqueo. Dada la implementación de AppWidgetProvider , si se invoca su bloque catch , probablemente su proveedor no fue llamado con ninguna de las devoluciones de llamada estándar (por ejemplo, onUpdate() ). Podría agregar algunos registros para tratar de tener una idea de si los usuarios afectados reciben buenas llamadas de super.onReceive() :

  • Si lo hacen, es probable que el widget de la aplicación esté funcionando con normalidad aparte de estas transmisiones deshonestas, por lo que podría descartar las fallas como una simple molestia.

  • Si siempre se ven afectados, es posible que deba intentar llamar a onUpdate() usted mismo de vez en cuando

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda