标签: android-calendar

设置频率属性RRULE以运行一次事件

我有

Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("beginTime", dateStart.getTime());
intent.putExtra("allDay", false);
intent.putExtra("rrule", "FREQ=DAILY");
intent.putExtra("endTime", dateEnd.getTime());
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

编译一个事件,我想一次运行该事件.

设定频率的线是

intent.putExtra("rrule", "FREQ=DAILY");
Run Code Online (Sandbox Code Playgroud)

此外,如果我删除此行,默认情况下,如果我不手动更改它,Android日历将设置为DAILY.

我已经找到了所有支持的属性的列表,我找到了MONTLY,YEARLY等但我找不到"一次"的正确支持语法

你可以帮帮我吗?

android android-calendar android-event

3
推荐指数
1
解决办法
4601
查看次数

提醒功能

在我的应用程序中,我试图在该提醒上设置提醒和警报,但我无法这样做。

由于我对如何设置提醒没有完整和适当的知识,因此对其进行编辑和删除。当我在谷歌上搜索时,我得到的东西对我来说并不容易理解。

我尝试了一个代码:Main.java

Calendar cal = Calendar.getInstance();
java.util.Calendar;

// add minutes to the calendar object
cal.set(Calendar.MONTH, 4);
cal.set(Calendar.YEAR, 2011);               
cal.set(Calendar.DAY_OF_MONTH, 5);
cal.set(Calendar.HOUR_OF_DAY, 21);
cal.set(Calendar.MINUTE, 43);

Intent alarmintent = new Intent(getApplicationContext(), AlarmReceiver.class);
alarmintent.putExtra("title","Title of our Notification");
alarmintent.putExtra("note","Description of our  Notification");
//HELLO_ID is a static variable that must be initialised at the BEGINNING OF CLASS with    1;

//example:protected static int HELLO_ID =1;
PendingIntent sender = PendingIntent.getBroadcast(getApplicationContext(), HELLO_ID,
alarmintent,PendingIntent.FLAG_UPDATE_CURRENT|  Intent.FILL_IN_DATA);
//VERY IMPORTANT TO SET FLAG_UPDATE_CURRENT... this will send correct extra's     informations to 
//AlarmReceiver …
Run Code Online (Sandbox Code Playgroud)

android alarmmanager android-alarms android-notifications android-calendar

3
推荐指数
1
解决办法
4917
查看次数

How can a Web App add a Calendar Event to an Android Phone?

On iOS, you simply link to an .ics file and the Safari browser shows an "intent" to add it to your calendar.

How can you do something at least somewhat similar on Android, maybe achieve the same result in a different way? It has to be entirely web based and not rely on functionality that only native apps can access.

是否有计划针对即将推出的Android或Chrome在任何平台上执行此操作?

Android支持Web通知,因此我想您可以拥有自己的基于“ Web”的日历,但我希望用户将其放在其本机日历上。

如果您无法做到这一点,也许有一种方法可以将事件发送到gmail日历,并指定任意信息,因为通常所有android手机都链接到某个gmail地址,因此日历将被同步,对?

icalendar android calendar mobile-website android-calendar

3
推荐指数
1
解决办法
2141
查看次数

如何解决android日历中的"事件值必须包含eventTimezone"?

嗨开发了一个Android应用程序,其中包含一些功能,可以在Calendar应用程序中添加我们的事件详细信息.我的应用程 但有时它会在调试时强制关闭并在logcat中显示错误.我使用了2个内容uri用于新旧版本的Android操作系统.

那些是

 if(){
    Uri calendars = Uri.parse("content://calendar/calendars");
    }
    else{
    calendars = Uri.parse("content://com.android.calendar/calendars");
    }
Run Code Online (Sandbox Code Playgroud)

我正在努力解决我的问题,但没有取得成功.请为我提供此问题的最佳解决方案.我在下面添加了我的logcat.

提前致谢.

   java.lang.IllegalArgumentException: Event values must include an eventTimezone
    03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:165)
    03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
    03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.content.ContentProviderProxy.insert(ContentProviderNative.java:415)
    03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.content.ContentResolver.insert(ContentResolver.java:730)
    03-02 18:28:35.836: E/AndroidRuntime(1362):     at in.plackal.lovecyclesfree.CycleManager.setAlertOnDevice(CycleManager.java:1083)
    03-02 18:28:35.836: E/AndroidRuntime(1362):     at in.plackal.lovecyclesfree.ActivityManager.onPause(ActivityManager.java:83)
    03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.app.Activity.performPause(Activity.java:4563)
    03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1195)
    03-02 18:28:35.836: E/AndroidRuntime(1362):     at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2693)
Run Code Online (Sandbox Code Playgroud)

android android-contentprovider android-calendar

2
推荐指数
1
解决办法
3982
查看次数

添加日历活动而不打开日历

在我的应用程序中,用户可以为任务设置最多3个提醒,但每次按"设置提醒"按钮时,它都会打开日历应用程序.有没有办法在不打开默认日历应用程序的情况下设置日历事件?我只是想在不启动日历活动的情况下添加事件.

这就是我的代码现在的样子:

Calendar beginTime = Calendar.getInstance();
beginTime.set(2013, Calendar.MAY, 10, 3, 00);
startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(2012, Calendar.MAY, 10, 4, 00);
endMillis = endTime.getTimeInMillis();

Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra(Events.TITLE, "Test Android");
intent.putExtra(Events.EVENT_LOCATION, "Test Location");
intent.putExtra(Events.DESCRIPTION, "Test Description Examples");

intent.putExtra(Events.DTSTART, startMillis);
intent.putExtra(Events.DTEND, endMillis);
intent.putExtra(Events.ALL_DAY, false);
intent.putExtra(Events.EVENT_END_TIMEZONE, "Europe/London");


intent.putExtra(Events.ACCESS_LEVEL, Events.ACCESS_PRIVATE);
intent.putExtra(Events.AVAILABILITY, Events.AVAILABILITY_BUSY);
Run Code Online (Sandbox Code Playgroud)

java android android-intent android-calendar

2
推荐指数
1
解决办法
6047
查看次数

比较时间:检查给定时间是否在另一时间的一定时间内

正如标题所述; 有没有办法比较时间,看看它们是否在彼此的一定时间内?IE浏览器.判断Time1是否在Time2的15分钟内的方法.一个更复杂的例子可能是在75分钟内(因为小时也会改变,因此将分钟数重置为0.

在java/android中有很多不同的比较日期和时间的方法.有Time班级,Date班级和Calendar班级.甚至还有一种compareTo方法和方法可以检查日期是在另一个之前还是之后,但我无法找到解决问题的方法.

另一个例子:

如果我有Time1,12:30和Time2,12:10,我想检查他们是否还有15分钟的时间.我可以比较分钟差异的差异.30 - 10 = 20. 20显然不低于15.

但是,Time1是12:56而Time2是13:02,这种方法不起作用.2 - 56 = -54,但实际差异为6.一种解决方案是,如果您知道以后哪个时间,请检查后一分钟是否小于前一分钟.如果不是,则在前一分钟添加60.

这是比较好的方法吗?这会给我的代码增加很多复杂性,特别是当我需要检查小时和日期时.是否有更简单的解决方案或api可用?

java time android android-date android-calendar

2
推荐指数
1
解决办法
2349
查看次数

在日历视图中添加文本

我试图在我的日历视图中添加文本,这是我希望它如何的示例

http://postimg.org/image/wf4gxz1dr/

我的CalendarView在Material Design CalendarView中,这是我的calendarView的链接

http://postimg.org/image/iid1z41z1/

是否可以在此材料设计中添加文本,或者我必须使用基本calendarView,如第1张图片中所示.请告诉我如何才能在这些观点中做到这一点.

抱歉,我无法在此处上传截图.提前致谢

android calendar android-calendar calendarview

2
推荐指数
1
解决办法
3092
查看次数

在 Android 事件创建意图中指定日历

我通过以下代码触发日历事件的创建:

Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setData(CalendarContract.Events.CONTENT_URI);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

但我想指定应该使用哪个日历来创建事件(即在事件创建屏幕中设置日历下拉列表的初始值)。

我试图提供ACCOUNT_TYPEACCOUNT_NAME并且CALENDAR_ID

intent.putExtra(CalendarContract.Events.ACCOUNT_TYPE, accountType);
intent.putExtra(CalendarContract.Events.ACCOUNT_NAME, accountName);
intent.putExtra(CalendarContract.Events.CALENDAR_ID, calendarId);
Run Code Online (Sandbox Code Playgroud)

但它对日历下拉初始值没有影响。

是否可以在事件创建意图中指定日历?

android android-intent android-calendar

2
推荐指数
1
解决办法
3291
查看次数

如何在Android中查找当月的星期六和星期日?

我正在尝试禁用日历中的星期六和星期日。首先,我必须找到它。我尝试过,但无法获取。我在这里发布了代码。

 public int countWeekendDays() {
    Calendar calendar = Calendar.getInstance();

    calendar.set(Calendar.DAY_OF_WEEK, Calendar.DATE+1);
    int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

    int count = 0;
    for (int day = 1; day <= daysInMonth; day++) {
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.DATE+1, day);
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
        if (dayOfWeek == Calendar.SUNDAY || dayOfWeek == Calendar.SATURDAY) {
            if(dayOfWeek==Calendar.SUNDAY)
                calendar.add(Calendar.DATE, Calendar.SUNDAY-1);
            else if(dayOfWeek==Calendar.SATURDAY)
                calendar.add(Calendar.DATE, Calendar.SATURDAY);

            disable.add(calendar.getTime());
        }

    }
    for(int i=0;i<disable.size();i++)
    {
        Log.e("***&***",disable.get(i).toString());
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)

我需要获取当前月的星期六和星期日(说:Aug),但是我得到的结果是前一个月,即7月。

java datetime android-calendar

2
推荐指数
1
解决办法
1867
查看次数

日历提供程序:Android 8上的权限拒绝

我在使用日历提供程序时遇到Oreo Android 8.0/8.1设备上的应用程序崩溃.我的设备上运行Nougat及以下版本时,问题并未显示.

Permission Denial: reading com.android.providers.calendar.CalendarProvider2 uri content://com.android.calendar/calendars from pid=8522, uid=10197 requires android.permission.READ_CALENDAR, or grantUriPermission()
Run Code Online (Sandbox Code Playgroud)

令我困惑的是,即使系统在运行时请求持久性,它们也会被用户确认,并且可以在系统设置中验证崩溃.甚至在访问之前检查权限(参见下面的代码)也无济于事.访问被确认 - 然后被拒绝.

在我的AndroidManifest中:

<manifest ...>
    <uses-permission android:name="android.permission.READ_CALENDAR" />
    <uses-permission android:name="android.permission.WRITE_CALENDAR" />
    <application>
        ...
    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

作为示例(对于其他查询也会出现问题),我使用此方法创建日历:

public static void createCalendarIfNotExists(android.app.Activity activity) throws SecurityException {

    ContentResolver contentResolver = activity.getContentResolver();

    // Check if calendar already exists.
    String[] projection = new String[]{
                    CalendarContract.Calendars._ID,
                    CalendarContract.Calendars.CALENDAR_DISPLAY_NAME};

    if (ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_CALENDAR) == PackageManager.PERMISSION_GRANTED) {
        Cursor cursor = contentResolver.query(CalendarContract.Calendars.CONTENT_URI,
                projection,
                CalendarContract.Calendars.CALENDAR_DISPLAY_NAME + " = ?",
                new String[]{CALENDAR_NAME},
                null);

        if (cursor != …
Run Code Online (Sandbox Code Playgroud)

java android android-calendar android-permissions android-8.0-oreo

2
推荐指数
1
解决办法
2687
查看次数