Android 4.0 添加日历和事件

2024-04-14

我想在android 4.0及以上版本的设备中添加日历事件。 目前我正在使用以下代码添加事件,

if (android.os.Build.VERSION.SDK_INT <= 7 )
                    {
                        Uri calendars = Uri.parse("content://calendar/calendars");
                        Cursor managedCursor = managedQuery(calendars, projection, null, null, null);
                        if (managedCursor.moveToFirst()) 
                        {
                            String calName; 
                            String calId; 
                            int nameColumn = managedCursor.getColumnIndex("name"); 
                            int idColumn = managedCursor.getColumnIndex("_id");
                            do 
                            {
                                calName = managedCursor.getString(nameColumn);
                                calId = managedCursor.getString(idColumn);
                                Log.e("Calendar Id : ",""+calId+" : "+calName);
                            }
                            while (managedCursor.moveToNext());

                            if(calId != null)
                            {
                                try 
                                {
                                    Log.e("Calendar Id : ",""+calId+" : "+calName);
                                    ContentValues event = new ContentValues();
                                    event.put("calendar_id", calId);
                                    event.put("title", summary);
                                    event.put("description", summary);
                                    event.put("eventLocation", "");

                                    event.put("dtstart", startTime);
                                    event.put("dtend", endTime);
                                    event.put("allDay", allDayFlag);  
                                    event.put("eventStatus", 1);
                                    event.put("visibility", 0);
                                    event.put("hasAlarm", 1); 
                                    Uri eventsUri = Uri.parse("content://calendar/events");
                                    Uri url = getContentResolver().insert(eventsUri, event);
                                    Log.e("Event Res : ",""+url);
                                    if(!url.equals(""))
                                    Main.showErrorDialog(this, "Event Successfully Added ");
                                }
                                catch (Exception kwse) 
                                {
                                    Log.e("Exception 1 kwse ",""+kwse.toString());
                                }
                            }
                        }
                    }
                    else
                    {
                        Uri calendars= Uri.parse("content://com.android.calendar/calendars");
                        Cursor managedCursor = managedQuery(calendars, projection, null, null, null);
                        if (managedCursor.moveToFirst()) 
                        {
                            String calName; 
                            String calId; 
                            int nameColumn = managedCursor.getColumnIndex("name"); 
                            int idColumn = managedCursor.getColumnIndex("_id");
                            do 
                            {
                                calName = managedCursor.getString(nameColumn);
                                calId = managedCursor.getString(idColumn);
                                Log.e("Calendar Id : ",""+calId+" : "+calName);
                            }
                            while (managedCursor.moveToNext());

                            if(calId != null)
                            {
                                try 
                                {
                                    Log.e("Calendar Id : ",""+calId+" : "+calName);
                                    ContentValues event = new ContentValues();
                                    event.put("calendar_id", calId);
                                    event.put("title", summary);
                                    event.put("description", summary);
                                    event.put("eventLocation", "");

                                    event.put("dtstart", startTime);
                                    event.put("dtend", endTime);
                                    event.put("allDay", allDayFlag);  
                                    event.put("eventStatus", 1);
                                    event.put("visibility", 0);
                                    event.put("hasAlarm", 1); 
                                    Uri eventsUri = Uri.parse("content://com.android.calendar/events");
                                    Uri url = getContentResolver().insert(eventsUri, event);
                                    Log.e("Event Res : ",""+url);
                                    if(!url.equals(""))
                                    Main.showErrorDialog(this, "Event Successfully Added ");
                                }
                                catch (Exception kwse) 
                                {
                                    Log.e("Exception 2 kwse ",""+kwse.toString());
                                }
                            }
                        }
                    }

上面的代码在android 3.0之前运行良好,但是在android 4.0中没有添加事件,这是我从客户那里得到的抱怨。我没有android 4.0的设备,所以无法检查。

对于 Android 设备sdk version 7 and below我们用它作为

Uri calendars = Uri.parse("content://calendar/calendars");

至于哪里sdk version above 7我们用作为

Uri calendars= Uri.parse("content://com.android.calendar/calendars");

android 4.0也是这样吗,有什么需要改变的吗?


我认为Android 4.0中不存在“可见性”

And

int nameColumn = managedCursor.getColumnIndex("calendar_displayName");

可能比

int nameColumn = managedCursor.getColumnIndex("name");

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 4.0 添加日历和事件 的相关文章

随机推荐

  • 如何查看导致 clr.dll 中崩溃转储的 C# 代码?

    我有一个 Windows 窗体应用程序 NET 4 它在我的开发计算机上运行良好 但在其他两台测试计算机上崩溃 我可以加载它在 VS2010 中创建的小型转储 选择 使用混合调试 会导致 Visual Studio 明显无休止地滥用 CPU
  • CLR 如何加载 DLL?

    我的假设始终是 CLR 在应用程序域启动时加载了它所需的所有 DLL 然而 我写了一个例子 让我对这个假设提出质疑 我启动我的应用程序并检查加载了多少模块 Process ObjModulesList ProcessModuleCollec
  • 如何 Gammu 发送 php shell_exec windows 7 和 xampp?

    我已经安装了XAMPP最新版本并安装了gammu 在终端中 我可以发送短信或识别我的手机 但如果我在 php shell exec 或 exec 上尝试相同的命令 则会出现问题 命令 C Program Files gammu bin ga
  • 将 boost 序列化与犰狳 datum::nan 值结合使用

    我在我的 C CLI 程序中使用 boost 序列化 并且某些类具有包含一些 double 的数据成员 这些 double 被初始化为 arma datum nan 犰狳库的 非数字 值 我通过 boost archive text oar
  • 如何使用spring AOP切入点表达式拦截返回类型List

    以下是我的方面课程 我正在努力让所有的回报List从我的baserepostitary Aspect Service public class DecryptionAspect AfterReturning value execution
  • 重置 git 设置

    当我尝试下载时this https git01 codeplex com casablancagit repo 我不断得到error RPC failed result 56 HTTP code 200我认为这是因为我弄乱了一些设置 我正在
  • 在iOS中解析连续的JSON流

    我正在努力掌握我正在编写的应用程序的 JSON 技巧 在应用程序端 我有一个 NSInputStream 它通过 CFStreamCreatePairWithSocketToHost 连接到服务器 服务器正在以异步方式为应用程序生成 JSO
  • 如何将对象传递给 Reveal 模态弹出窗口?

    我想在我的 Rails 3 0 3 应用程序中使用 Reveal Modal jQuery 插件 我想要做的是从父对象的索引页创建子对象 现在我有链接将父级的 id 传递给子控制器的 new 方法 然后打开子级的 new html erb
  • 如何在 C# MVC 中从 Google+ 登录迁移到 Google 登录

    我的网站允许用户使用其 Google 帐户注册并登录 我的 C MVC 应用程序使用 Microsoft AspNet Identity Owin 提供的模板功能 我收到了一封来自 Google 的电子邮件 称他们将关闭 Google 该电
  • 在 Eclipse IDE 上使用 VBA [重复]

    这个问题在这里已经有答案了 可能的重复 有没有便宜或免费的 VB6 编程 IDE https stackoverflow com questions 1766514 any cheap or free ides out there for
  • 使用 shell 脚本进行 CGI 编程

    我需要将文本框的内容传递到变量中 即 在 html 页面的文本框中输入的任何内容都需要传递给变量 这是因为我在 linux shell 编程中调用 HTML 以及 CGI 我需要根据需要操纵该变量 你有什么想法去做吗 我需要做的是 我想获取
  • PushSharp 不发送通知

    我有一个简单的代码 PushBroker pushBroker new PushBroker string path HttpContext Current Server MapPath AppSettings CertificatePat
  • 以编程方式将 UITableView 行从一个位置移动/动画化到另一个位置

    我有一个 UITableView 我想以编程方式将一行从位置 N1 移动到位置 N2 并且我希望它能够从旧位置到新位置进行动画处理 我浏览了 UITableView 文档 只看到插入 重新加载和删除 您知道我可以通过编程方式执行此操作的方法
  • Kubernetes Istio 入口网关始终响应 503

    我正在使用 Helm 配置 Istio 在这里你可以找到我的istio config yaml global proxy accessLogFile dev stdout resources requests cpu 10m memory
  • 为什么当参数作为参数传递时 sp_executesql 运行速度变慢

    查询1 快如闪电 sp executesql select from tablesView where Id 1 vs 查询2 太慢 sp executesql select from tablesView where Id Id N Id
  • Chrome 扩展:在 Javascript 中检测新的一天(更改的日期)?

    我知道没有新的一天 或小时 分钟 的事件侦听器 但在我的 Chrome 扩展中 我需要知道新的一天何时开始 这意味着我必须使用 setInterval 函数来找出这一天何时发生变化 但是 我不确定间隔值使用什么 10 秒 还是 10 分钟
  • 如何使用 pandas 将 200.13K 和 1.2M 等数字字符串转换为整数? [复制]

    这个问题在这里已经有答案了 我的 df 中有一个列 Vol 其中的值以 K 和 M 结尾 分别表示数千和数百万 这些值是 dtype 中的 对象 我需要将它们转换为 双精度 Example for the column what I nee
  • Firebase身份验证:如何获取当前用户的密码?

    我是新来的火力地堡身份验证 所以 我正在创建一个带有配置文件的基本应用程序 我做了一个活动来编辑用户的基本信息 例如DisplayName and Email 我不想添加更改密码的功能 但首先 我不想检查当前用户的密码并将其与String从
  • 如何在linux中查找包含字符串的行[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在 Linux 中有一个文件 我想显示该文件中包含特定字符串的行 该怎么做 通常的方法是使用grep https linux die n
  • Android 4.0 添加日历和事件

    我想在android 4 0及以上版本的设备中添加日历事件 目前我正在使用以下代码添加事件 if android os Build VERSION SDK INT lt 7 Uri calendars Uri parse content c