Nicht geschützt broadcast verursacht Absturz beim starten der app
Machte ich einen Dienst für die Benachrichtigung erhalten, jedes mal, wenn Daten aktualisiert am hinteren Ende. Hier ist der code für den service:
public class FeedbackService extends IntentService {
public FeedbackService() {
super("FeedbackService");
}
@Override
protected void onHandleIntent(Intent intent) {
Log.d("MyService", "About to execute feedback call");
feedbackCheckCall(this);
}
private void feedbackCheckCall(final Context context){
//Call for getting checking data from backend.
}
private void sendNotification(Context context) {
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher_icon)
.setContentTitle("Feedback Reply")
.setContentText("You've a reply waiting for your feedback!")
.setVibrate(new long[]{500,500,500});
Intent notificationIntent = new Intent(context, navHomeActivity.class );
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIntent);
//Add as notification
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(0, builder.build());
}
}
Hier ist der code für den Empfänger :
public class FeedbackRecieiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent dailyUpdater = new Intent(context, FeedbackService.class);
context.startService(dailyUpdater);
Log.d("AlarmReceiver", "Called context.startService from AlarmReceiver.onReceive");
}
}
Hier der code, von wo aus ich nenne es:
Calendar updateTime = Calendar.getInstance();
updateTime.setTimeZone(TimeZone.getDefault());
updateTime.set(Calendar.HOUR_OF_DAY,0);
updateTime.set(Calendar.MINUTE, 0);
updateTime.set(Calendar.SECOND, 0);
long intervalTime = 2*60*60*1000; //in milliseconds format is : h*m*s*1000
Intent intent = new Intent(context, FeedbackRecieiver.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,0,intent,PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,updateTime.getTimeInMillis(),intervalTime,pendingIntent);
Mein manifest-Deklarationen sind :
<service android:name=".navFragments.feedbackSuppport.FeedbackService"/>
<receiver android:name=".navFragments.feedbackSuppport.FeedbackRecieiver"/>
Die app abstürzt, wenn ich ein signiertes Exemplar mit diesem Fehler beim Start:
Sending non-protected broadcast com.motorola.motocare.INTENT_TRIGGER from system 6836:com.motorola.process.system/1000 pkg com.motorola.motgeofencesvc
java.lang.Throwable
at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:18179)
at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:18779)
at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:512)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2905)
at android.os.Binder.execTransact(Binder.java:565)
Kann mir bitte jemand helfen mit diesem? Ich bin wirklich hier hängengeblieben. Vielen Dank im Voraus.
Sind Sie sicher, dass der Fehler von der app aus? Nichts in deinem code scheint zu finden, dass broadcast.
Dies ist die neueste code habe ich Hinzugefügt, um meine Anwendung. Ich verstehe nicht, warum es wäre etwas anderes. Es funktioniert, wenn ich Teste es per usb-live-Kopie. Was denkst du könnte es sein?
Dies ist die neueste code habe ich Hinzugefügt, um meine Anwendung. Ich verstehe nicht, warum es wäre etwas anderes. Es funktioniert, wenn ich Teste es per usb-live-Kopie. Was denkst du könnte es sein?
InformationsquelleAutor Kavach Chandra | 2017-03-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, es war kein Problem mit dem broadcast receiver oder den service. Das Problem war, während mit proguard. Ich war nicht mit es richtig. Ich hatte es deaktiviert in der debug-Variante und aktiviert es in der release-Variante. Die app stürzt ab wegen.
Ich löste es durch das deaktivieren der proguard. Wenn Sie möchten, zu implementieren, proguard, gehen Sie durch die android-Handbücher und online verfügbare Inhalte.
InformationsquelleAutor Kavach Chandra