在特定时间(闹钟)启动我的Phonegap应用程序

use*_*609 6 java android alarmmanager phonegap-plugins

好的,所以我试图让我的Phonegap应用程序在特定时间启动,功能与闹钟相同.为此,我试图编写自己的插件:

package de.ma;
import org.apache.cordova.api.PluginResult; 
import org.json.JSONArray;
import android.content.Intent;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.util.Log;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.os.Bundle;
import java.util.Calendar;
import android.os.SystemClock;
import com.phonegap.api.Plugin;

public class alarm extends Plugin {
@Override
public PluginResult execute(String arg0, JSONArray arg1, String arg2) {
    Calendar cal = Calendar.getInstance();
    // add 5 minutes to the calendar object
    cal.add(Calendar.SECOND, 5);
    Intent intent = new Intent(ctx, AlarmReciever.class);
    intent.putExtra("alarm_message", "O'Doyle Rules!");
    // In reality, you would want to have a static variable for the request code instead of 192837
    PendingIntent sender = PendingIntent.getBroadcast(this, 192837, intent, PendingIntent.FLAG_UPDATE_CURRENT);

    // Get the AlarmManager service
    AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
    am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);

     return null;
}

}
Run Code Online (Sandbox Code Playgroud)

但是在编译时我得到3个错误:

  1. AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); 原因:

    ALARM_SERVICE无法解析为变量alarm.java

  2. Intent intent = new Intent(ctx, AlarmReciever.class); 原因:

    构造函数Intent(CordovaInterface,Class)是未定义的alarm.java

  3. PendingIntent sender = PendingIntent.getBroadcast(this, 192837, intent, PendingIntent.FLAG_UPDATE_CURRENT); 原因:

    PendingIntent类型中的方法getBroadcast(Context,int,Intent,int)不适用于参数(alarm,int,Intent,int)alarm.java`

我的接收器Java-File被调用AlarmReciever.java.

如果有人看到我做错了什么,那么我会很感激帮助.

小智 -1

您可以使用后台服务来执行此操作,该服务将在特定时间启动应用程序。