Android: -Программа тревоги не работает - PullRequest
1 голос
/ 07 декабря 2011

В моем коде менеджер тревог не работает. Остальное у меня работает нормально. Пожалуйста, посмотрите мой код.

   Intent myIntent = new Intent(getApplicationContext(), AndroidAlarmService.class);
   myIntent.putExtra("class", "home");
   PendingIntent pendingIntent = PendingIntent.getService(this, 0,myIntent, 0);
   AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
   alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),6000,pendingIntent);

и мой класс AlarmService для Android: -

public class AndroidAlarmService extends BroadcastReceiver implements URLs{
 public void onReceive(Context context, Intent intent) {

    // TODO Auto-generated method stub
     System.out.println("BroadCast\n");
     String name=intent.getStringExtra("class");
     if(name.equals("home")){

    Intent homeIn=new Intent(context,Home.class);
    context.startActivity(homeIn);
     }

}
}

в манифесте я сделал это;

 <receiver android:name=".AndroidAlarmService" android:enabled="true" >
      <intent-filter>
          <action android:name="android.intent.action.PHONE_STATE"></action>
      </intent-filter>
 </receiver>

Почему не работает ??

Ответы [ 3 ]

3 голосов
/ 08 декабря 2011

Я получил ответ. Я внес следующие изменения:

Intent myIntent = new Intent(getApplicationContext(), AndroidAlarmService.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,myIntent, 0);

В моем классе AndroidAlarmService:

Intent homeIn=new Intent(context,Home.class);
homeIn.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(homeIn);
1 голос
/ 31 января 2013

У меня была такая же проблема, пока я не обнаружил, что мой Broadcast Receiver был помещен в другой пакет, а не в общий пакет.

Просто изменилось:

<receiver android:name=".AndroidAlarmService" android:enabled="true" >

для:

<receiver android:name="com.MyCompany.MyPackage.AndroidAlarmService" android:enabled="true" >
0 голосов
/ 07 декабря 2011

Вы пытались изменить

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),6000,pendingIntent);

Вы пытались изменить 6000 на что-то другое?Кажется, у вас все остальное правильно.

РЕДАКТИРОВАТЬ:

Убедитесь, что у вас есть разрешение Read_phone_state в вашем манифесте.

...