Android widget如何从中获取小时和分钟的时间?
在我的应用程序中,我创建了小部件以模拟时钟格式显示时间。当点击小部件实际显示报警类时,为该小部件设置报警,并且其工作正常 为此,我使用了以下代码: 当点击小部件时,我在更新中调用此小部件,并从中获取报警类:Android widget如何从中获取小时和分钟的时间?,android,widget,alarmmanager,Android,Widget,Alarmmanager,在我的应用程序中,我创建了小部件以模拟时钟格式显示时间。当点击小部件实际显示报警类时,为该小部件设置报警,并且其工作正常 为此,我使用了以下代码: 当点击小部件时,我在更新中调用此小部件,并从中获取报警类: PendingIntent pendingIntent = PendingIntent.getActivity( context, 0, getAlarmPackage(context), 0); rv_ana.setOnClickPendingIntent(R.id.clock,
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;
}
}
公共意图getAlarmPackage(上下文){
PackageManager PackageManager=context.getPackageManager();
意图AlarmClockIntent=新意图(Intent.ACTION\u MAIN)
.addCategory(意图.CATEGORY_发射器);
字符串clockImpls[][]={
{“标准闹钟”,“com.android.alarmclock”,
“com.android.alarmclock.alarmclock”},
{“HTC Alarm ClockDT”,“com.HTC.android.worldclock”,
“com.htc.android.worldclock.WorldClockTabControl”},
{“标准闹钟时钟”,“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”},
{“三星Galaxy S”,“com.sec.android.app.clockpackage”,
“com.sec.android.app.clockpackage.clockpackage”}
};
布尔foundClockImpl=false;
对于(int i=0;i有没有可能?帮帮我?如果你想要闹钟时间,可以用这个
String nextAlarm = Settings.System.getString(getContentResolver(),
Settings.System.NEXT_ALARM_FORMATTED);
然后将其转换为日期
String string = nextAlarm;//Tue 8:30"
Date date = new SimpleDateFormat("EEE HH:mm", Locale.ENGLISH).parse(string);
System.out.println(date);
这个问题对我来说不太清楚。假设您需要从闹钟获取闹钟时间小时和分钟
final String tag_alarm = "tag_alarm";
Uri uri = Uri.parse("content://com.android.alarmclock/alarm");
Cursor c = getContentResolver().query(uri, null, null, null, null);
Log.i(tag_alarm, "no of records are " + c.getCount());
Log.i(tag_alarm, "no of columns are " + c.getColumnCount());
if (c != null) {
String names[] = c.getColumnNames();
for (String temp : names) {
System.out.println(temp);
}
if (c.moveToFirst()) {
do {
for (int j = 0; j < c.getColumnCount(); j++) {
Log.i(tag_alarm, c.getColumnName(j)
+ " which has value " + c.getString(j));
}
} while (c.moveToNext());
}
}
final String tag\u alarm=“tag\u alarm”;
Uri=Uri.parse(“content://com.android.alarmclock/alarm");
游标c=getContentResolver().query(uri,null,null,null,null);
Log.i(tag_报警,“记录数为”+c.getCount());
Log.i(tag_报警,“列数为”+c.getColumnCount());
如果(c!=null){
字符串名称[]=c.getColumnNames();
用于(字符串临时值:名称){
系统输出打印项次(温度);
}
if(c.moveToFirst()){
做{
对于(int j=0;j
读了两遍你的问题后,我仍然不知道你想要什么。如果您想知道当前时间,可以使用Calendar.getInstance().get(Calendar.HOUR\u OF\u DAY)
等。那么您想从报警应用程序将报警时间返回到您的小部件吗?我也多次阅读了这个问题,不清楚您想要什么。您希望您发布的代码能够访问实际时间还是小部件上显示的时间?或者是由意图引发的主要问题?确实令人困惑。但他得到了3张选票……:)我不想在日历上浪费时间。您知道如何从操作系统支持的软件包中设置报警,如上所示。从上面的例子中,我们必须通过设置直接根据我的代码将警报设置到小部件。但是我想从那个类中得到时间。上面发布的代码和我一样,也对我有效。当我们设置警报时,它工作正常。我们怎样才能从上面的代码中得到以小时和分钟为单位的时间。不。。实际上我们在alarm中设置了一个时间,这是我想完成程序维护的时间。alarm的剩余时间或alarm time。以小时和分钟为单位的alarm timings让我们在一个函数中调用上面的代码,该函数在c.getCount()处显示空指针异常;