PhoneGap (別名 Cordova) を使用して Android アプリを作成していますが、カレンダーの統合が機能しません。 免責事項:私は Android と PhoneGap の両方に初心者です。ご容赦ください。
私がやろうとしているのは、ユーザーのカレンダーにイベントを追加することだけです。このチュートリアルに従って、Calendar Intent を起動しようとするプラグインを作成しました。コードは次のようになります。
public class CalendarPlugin extends Plugin {
public static final String NATIVE_ACTION_STRING="addToCalendar";
public static final String SUCCESS_PARAMETER="success";
@Override
public PluginResult execute(String action, JSONArray data, String callbackId) {
if (NATIVE_ACTION_STRING.equals(action)) {
Calendar beginTime = Calendar.getInstance();
beginTime.set(2012, 6, 19, 7, 30);
Calendar endTime = Calendar.getInstance();
endTime.set(2012, 6, 19, 8, 30);
Intent calIntent = new Intent((Context) this.ctx, CalendarPlugin.class)
.setAction(Intent.ACTION_INSERT)
.putExtra(Events.TITLE, "A new event")
.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, true)
.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis())
.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis());
this.ctx.startActivity(calIntent);
return new PluginResult(PluginResult.Status.OK, "Smashing success");
}
return new PluginResult(PluginResult.Status.ERROR, "Didn't work bro");
}
}
このプラグインを呼び出す Javascript コードは標準です。
var CalendarPlugin = {
callNativeFunction: function (success, fail, resultType) {
if (cordova) {
return cordova.exec( success, fail,
"org.myorg.appname.CalendarPlugin",
"addToCalendar", [resultType]);
}
else {
alert("Calendar function is not available here.");
}
}
};
Android コードが呼び出されています (ブレークポイントを使用して確認)。しかし、Javascript コードに返される結果はエラーです。
明示的なアクティビティ クラス {org.myorg.appname/org.myorg.appname.CalendarPlugin} が見つかりません。AndroidManifest.xml でこのアクティビティを宣言しましたか?
チュートリアルで AndroidManifest.xml に追加することについて言及されていないため、何かが足りないと思います (また、CalendarPluginコードが正常に呼び出されているため、CalendarPluginクラスが見つからないというエラーが発生する可能性はありますか? )。本当にCalendarPluginをマニフェストに追加する必要がある場合、どうすればよいでしょうか?