私のアプリでは、時間をアナログ時計形式で表示するウィジェットを作成しました。実際にアラームクラスを表示しているウィジェットをクリックすると、そのウィジェットのアラームが設定され、正常に動作します。
そのために、次のコードを使用しました。
ウィジェットをクリックすると、更新でこれを呼び出し、これからアラームクラスを取得します。
PendingIntent pendingIntent = PendingIntent.getActivity(
context, 0, getAlarmPackage(context), 0);
rv_ana.setOnClickPendingIntent(R.id.clock, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, rv_ana);
とアラーム機能方法:
public Intent getAlarmPackage(Context context) {
PackageManager packageManager = context.getPackageManager();
Intent AlarmClockIntent = new Intent(Intent.ACTION_MAIN)
.addCategory(Intent.CATEGORY_LAUNCHER);
String clockImpls[][] = {
{ "Standard Alarm", "com.android.alarmclock",
"com.android.alarmclock.AlarmClock" },
{ "HTC Alarm ClockDT", "com.htc.android.worldclock",
"com.htc.android.worldclock.WorldClockTabControl" },
{ "Standard Alarm ClockDT", "com.android.deskclock",
"com.android.deskclock.AlarmClock" },
{ "Froyo Nexus Alarm ClockDT", "com.google.android.deskclock",
"com.android.deskclock.DeskClock" },
{ "Moto Blur Alarm ClockDT", "com.motorola.blur.alarmclock",
"com.motorola.blur.alarmclock.AlarmClock" },
{ "Samsung Galaxy S", "com.sec.android.app.clockpackage",
"com.sec.android.app.clockpackage.ClockPackage" }
};
boolean foundClockImpl = false;
for (int i = 0; i < clockImpls.length; i++) {
String packageName = clockImpls[i][1];
String className = clockImpls[i][2];
try {
ComponentName cn = new ComponentName(packageName, className);
packageManager.getActivityInfo(
cn, PackageManager.GET_META_DATA);
AlarmClockIntent.setComponent(cn);
foundClockImpl = true;
} catch (NameNotFoundException nf) {
}
}
if (foundClockImpl) {
return AlarmClockIntent;
} else {
return null;
}
}
しかし、私の要件は、このアラーム機能から、時間単位と分単位の時間を取得する方法です。実はその機能はアラームを自動で表示してくれるのですが、時間が知りたいです。それは可能ですか?助けて?