Nicht in der Lage zu empfangen android.Absicht.Aktion.EVENT_REMINDER broadcast

Ich würde gerne eine Anwendung schreiben, die ausgelöst wird, wenn eine Kalender-Erinnerung. Ich merke, es gibt keine offiziell dokumentierte Weg, dies zu tun, aber ich habe gesehen, in das Protokoll, dass, wenn mein Kalender Wecker klingelt auf meinem Handy (Droid X), AlertReceiver zeigt an, dass er erhalten hat, ein android.Absicht.Aktion.EVENT_REMINDER:

01-03 11:03:00.029 D 1523 AlertReceiver onReceive: a=android.intent.action.EVENT_REMINDER Intent { act=android.intent.action.EVENT_REMINDER dat=content://com.android.calendar/129407058000 flg=0x4 cmp=com.android.calendar/.AlertReceiver (has extras) }

So, ich habe eine einfache BroadcastReceiver:

package com.eshayne.android;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class CalendarTest extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
       android.util.Log.i("CalendarTest", "CalendarTest.onReceive called!");
    }
}

mit diesem manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.eshayne.android"
    android:versionCode="1"
    android:versionName="1.0">
    <uses-permission android:name="android.permission.READ_CALENDAR" />
    <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
        <receiver android:name="com.eshayne.android.CalendarTest">
            <intent-filter>
                <action android:name="android.intent.action.EVENT_REMINDER" />
            </intent-filter>
        </receiver>
    </application>
    <uses-sdk android:minSdkVersion="8" />
</manifest>

Leider, wenn ich diese auf meinem Handy und die Einrichtung eines Kalender-Ereignis mit der Erinnerung, wenn die Erinnerung Warnungen, ich sehe immer noch die AlertReceiver log-Eintrag, aber nicht von mir.

Habe ich auch Lesen Sie hier über einige system-intents, die eine Registrierung erforderlich, die über code statt im manifest. So, ich habe versucht, das folgende statt:

package com.eshayne.android;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;

public class CalendarTestDisplay extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        registerReceiver(new BroadcastReceiver() {
                        @Override
                        public void onReceive(Context context, Intent intent) {
                            android.util.Log.i("CalendarTestDisplay", "received broadcast");
                        }           
                     },
                     new IntentFilter("android.intent.action.EVENT_REMINDER"));
    }
}

mit dieser modifizierten manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.eshayne.android"
    android:versionCode="1"
    android:versionName="1.0">
    <uses-permission android:name="android.permission.READ_CALENDAR" />
        <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
        <activity android:name=".CalendarTestDisplay"
              android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-sdk android:minSdkVersion="8" />
</manifest> 

mit keinem besseren Ergebnis.

Irgendwelche Ideen, was ich möglicherweise fehlen? Oder irgendwelche anderen Ideen, wie ich vielleicht in der Lage zu erfassen, Kalender, alarm vorkommen?

Dank,
Ethan

InformationsquelleAutor eshayne | 2011-01-08
Schreibe einen Kommentar