繁体   English   中英

不使用Intent将事件插入日历错误。 Android Studio

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM