CalendarContracts:列'方法'无效

问题描述 投票:0回答:1

好吧,所以我做了一个应用程序,在谷歌日历中添加事件,它工作正常,但之后我想添加提醒,所以我把代码提醒,但当我测试它我得到错误:column 'method' is invalid

这是我的代码:

                       `ContentResolver cr = getApplicationContext().getContentResolver();
                        ContentValues values = new ContentValues();

                        long startMillis = 0;
                        long endMillis = 0;
                        Calendar beginTime = Calendar.getInstance();
                        beginTime.set(EndAn, EndLuna, EndZi, EndOra, 00);
                        startMillis = beginTime.getTimeInMillis();
                        Calendar endTime = Calendar.getInstance();
                        endTime.set(EndAn, EndLuna, EndZi, EndOra, 10);
                        endMillis = endTime.getTimeInMillis();

                        values.put(CalendarContract.Events.DTSTART, startMillis);
                        values.put(CalendarContract.Events.TITLE, headline);
                        values.put(CalendarContract.Events.DESCRIPTION, "Description");

                        TimeZone timeZone = TimeZone.getDefault();
                        values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());

                        values.put(CalendarContract.Events.CALENDAR_ID, 1);

                        values.put(CalendarContract.Events.HAS_ALARM, 1);
                        values.put(CalendarContract.Events.DTEND, endMillis);
                        values.put(CalendarContract.Reminders.MINUTES, 23);
                        values.put(CalendarContract.Reminders.METHOD, 4);
                        if (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED ||
                                ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_CALENDAR) != PackageManager.PERMISSION_GRANTED) {
                            Toast.makeText(getApplicationContext(), stringPermission , Toast.LENGTH_LONG).show();
                        } else {
                            Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);

                            Uri uriContent = CalendarContract.Calendars.CONTENT_URI;
                            String[] projection = new String[]{
                                    CalendarContract.Calendars._ID,
                                    CalendarContract.Calendars.ACCOUNT_NAME,
                                    CalendarContract.Calendars.CALENDAR_DISPLAY_NAME,
                                    CalendarContract.Calendars.NAME,
                                    CalendarContract.Calendars.CALENDAR_COLOR,
                                    CalendarContract.Reminders._ID,
                                    CalendarContract.Reminders.MINUTES,
                                    CalendarContract.Reminders.METHOD
                            };

                            Cursor calendarCursor = managedQuery(uriContent, projection, null, null, null);

                        }`

所以你能告诉我我做错了什么/我需要添加/删除/修改它以便它可以工作吗?

P.S:提前致谢:D

android uri google-calendar-api
1个回答
0
投票

如果您阅读Reminders and Notifications,那么您就知道您的“方法”错误是由于此行:

 CalendarContract.Reminders.METHOD

使用的交付方式(见Delivery mechanisms):

  • 弹出。这些在移动平台和Web客户端上受支持。
  • 服务器发送的电子邮件。
  • 短信。这些仅适用于G Suite客户。

所以尝试使用:

 CalendarContract.Reminders.Email or 
 CalendarContract.Reminders.SMS or 
 CalendarContract.Reminders.Pop-up 

(我不确定使用正确的Java格式)

© www.soinside.com 2019 - 2024. All rights reserved.