[英]Insert event into calendar error without using Intent. Android Studio
我正在使用按钮,并在onClick事件中调用以下方法:
public void addCalendarEvent() {
long calID = 1;
long startMillis = 0;
long endMillis = 0;
Calendar beginTime = Calendar.getInstance();
beginTime.set(2015, 8, 9, 7, 30);
startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(2015, 8, 9, 8, 45);
endMillis = endTime.getTimeInMillis();
ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();
values.put(CalendarContract.Events.DTSTART, startMillis);
values.put(CalendarContract.Events.DTEND, endMillis);
values.put(CalendarContract.Events.TITLE, "Jazzercise");
values.put(CalendarContract.Events.DESCRIPTION, "Group workout");
values.put(CalendarContract.Events.CALENDAR_ID, calID);
values.put(CalendarContract.Events.EVENT_TIMEZONE, "America/New_York");
Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);
}
尝试对其进行调试后,出现以下异常:
java.lang.SecurityException:权限拒绝:从ProcessRecord {438ea3d0 30931:com.example.events/u0a255}(pid = 30931,uid = 10255)打开提供程序com.android.providers.calendar.CalendarProvider2需要android.permission.READ_CALENDAR或android.permission.WRITE_CALENDAR
尽管我已经将用户权限添加到了AndroidManifest.xml中:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.events" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-sdk android:minSdkVersion="14" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
任何帮助表示赞赏。 谢谢!
尝试这个
<manifest>
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<application>
</application>
</manifest>
您必须将权限包括在清单标签内的application标签之外。 我猜这就像标准。 但是即使我将它们放在外面也对我不起作用。 也许我还有其他一些问题,所以我想它是否可能对您有用。 尝试一下,如果没有,请不要担心。 因为它对我也不起作用,对我也有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.