0

好的,所以我尝试了我能找到的一切,它不起作用。这是我的代码。有人可以告诉我为什么它不会调用接收器吗?

AndroidManifest.xml

...
<receiver android:name=".AlarmReciever" />
...

AlarmReciever.java

public class AlarmReciever extends BroadcastReceiver 
{

    private static final Logger LOGGER = Logger.getLogger(LogService.class);

      @Override
      public void onReceive(Context context, Intent intent) 
      {

         LOGGER.debug("BroadcastReceiver, in onReceive:");

      }
}

设备监视器.java

public class DeviceMonitor extends Service 
{
    public int onStartCommand(Intent intent, int flags, int startld) 
    {

        LOGGER.debug("alarmmanger settting from on start");

        AlarmManager alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
        Intent I = new Intent(this, AlarmReciever.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, I, 0);
        Calendar time = Calendar.getInstance();
        time.setTimeInMillis(System.currentTimeMillis());
        time.add(Calendar.SECOND, 5);
        alarmMgr.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pendingIntent);

        LOGGER.debug("alarmmanger set from on start");
    }
}
4

3 回答 3

0

我似乎通过在 xml 文档中使用完全限定的路径名​​来解决问题

<receiver
    android:name="com.realityi.measy.mdm.logs.AlarmReciever"
    android:enabled="true"
    android:exported="true">
</receiver>

我能够使用

Intent i = new Intent();
i.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
sendBroadcast(i);

这迫使发送广播

真的希望这希望有人。我是 Android 开发的新手,这让我很生气。

于 2013-08-26T19:40:02.137 回答
0

也许更多的描述可能会有用,例如您是否从代码中没有收到日志消息,或者它抛出异常或......

但是我有一个工作代码,它实现了与您在问题中显示的相同的方法。不幸的是,您还没有发布 AndroidManifest.xml 的所有相关部分,但我有这个,也许它会有所帮助。

    <receiver
        android:name="hu.fnf.devel.atlas.AtlasIncomingSMSReceiver"
        android:enabled="true"
        android:exported="true"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED" >
            </action>
        </intent-filter>
    </receiver>

这会在收到新 SMS 时调用 AtlasIncomingSMSReceiver 类。

于 2013-08-26T18:37:51.307 回答
0

我认为如果您使用AlarmReceiver而不是.AlarmReceiver在 android mainfest 文件中使用它会起作用。

于 2013-08-26T19:48:52.263 回答