さて、目覚まし時計と同じ機能で、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;
}
}
しかし、コンパイルすると3つのエラーが発生します。
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
原因:ALARM_SERVICEを変数alarm.javaに解決できません
Intent intent = new Intent(ctx, AlarmReciever.class);
原因:コンストラクターIntent(CordovaInterface、Class)は未定義のalarm.javaです
PendingIntent sender = PendingIntent.getBroadcast(this, 192837, intent, PendingIntent.FLAG_UPDATE_CURRENT);
原因:型PendingIntentのメソッドgetBroadcast(Context、int、Intent、int)は、引数(alarm、int、Intent、int)には適用できませんalarm.java`
私のレシーバーJavaファイルはと呼ばれAlarmReciever.java
ます。
私が間違っていることを誰かが見たら、助けていただければ幸いです。