Ich versuche, einige einfache BroadcastReceiver
nach Handbüchern zu erstellen, aber ich kann es nicht funktionieren. Ich rufe Verfahren setalarm in onCreate
Funktion in MainActivity die wie folgt aussieht:BroadcastReceiver funktioniert nicht
private void setAlarm() {
Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);
AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, 0);
manager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+1000, pendingIntent);
}
Es sollte etwas AlarmReceiver
aktivieren, tut eine Aktion tun sollten aber nicht. Es sieht wie folgt aus:
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "I'm running", Toast.LENGTH_LONG).show();
notifikace(context);
}
public void notifikace(Context context) {
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);
mBuilder.setSmallIcon(R.drawable.notifikace);
mBuilder.setContentTitle("Notification Alert, Click Me!");
mBuilder.setContentText("aaa");
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
mNotificationManager.notify(2, mBuilder.build());
}
}
Ich vermute, dass ich etwas in AndroidManifest bin fehlt, aber ich weiß nicht, was. AndroidManifest sieht wie folgt aus:
<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Nastaveni"
android:label="@string/title_activity_nastaveni"
android:theme="@style/AppTheme.NoActionBar" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name=".Tyden"
android:label="@string/title_activity_tyden"
android:theme="@style/AppTheme.NoActionBar"></activity>
<receiver android:name=".AlarmReceiver" >
</receiver>
</application>
Letztlich Appliacation sollte in der Lage sein, Benachrichtigung bei bestimmten Zeit jeden Tag zu senden, auch wenn die Anwendung nicht im Moment läuft. (Ich muss dann
manager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+1000, pendingIntent);
Linie mit setRepeating Funktion ersetzen, aber bisher zu Testzwecken muss ich zuerst es zum Laufen zu bekommen.) Aber bisher AlarmReceiver Klasse tut nichts. Ich erhalte eine Fehlermeldung, wenn ich versuche, es zu laufen (aber die Anwendung nicht abstürzt):
04-14 11:52:54.592 1300-1354/? I/ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.xxx.myapplication3/com.example.xxx.myapplication.MainActivity (has extras)} from uid 10014 on display 0
04-14 11:52:54.673 1300-1635/? I/ActivityManager: START u0 {act=android.content.pm.action.REQUEST_PERMISSIONS pkg=com.android.packageinstaller cmp=com.android.packageinstaller/.permission.ui.GrantPermissionsActivity (has extras)} from uid 10057 on display 0
Ich bin nicht sicher, ob das Fehlerprotokoll auf diese oder etwas anderes in dem Projekt. Was mache ich falsch? Vielen Dank im Voraus für eine Antwort.
Format Code/xml bitte –
Haben meine Antwort Ihr Problem beheben? Als richtig markieren wenn ja bitte :) – Goofyahead