В рамках проекта я создал приложение Android, которое общается с онлайн-базой данных (MySQL), чтобы интегрировать встречу, приняло онлайновый календарь. Я собираю данные, конвертированные в Json, но когда в повестке дня мобильного телефона Android стоит проблема, вот мой код: (извините за мой английский)
РЕДАКТИРОВАТЬ:
public class calendrier extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Cursor cursor = getContentResolver()
.query(Uri.parse("content://com.android.calendar/calendars"),
new String[] { "_id", "displayName" }, "selected=1",
null, null);
if (cursor != null && cursor.moveToFirst()) {
String[] calNames = new String[cursor.getCount()];
int[] calIds = new int[cursor.getCount()];
for (int i = 0; i < calNames.length; i++) {
calIds[i] = cursor.getInt(0);
calNames[i] = cursor.getString(1);
cursor.moveToNext();
}
cursor.close();
if (calIds.length > 0) {
// we're safe here to do any further work
}
// grab calendar id from above
int cal_id = calIds[0];
// set the content value
ContentValues cv = new ContentValues();
cv.put("calendar_id", cal_id);
cv.put("title", "titre");
cv.put("description", "bla bla bla");
cv.put("eventLocation", "city");
// note: you're going to need to convert the desired date into
// milliseconds
cv.put("dtstart", System.currentTimeMillis());
cv.put("dtend", System.currentTimeMillis()
+ DateUtils.DAY_IN_MILLIS);
cv.put("allDay", 0); // true = 1, false = 0
cv.put("hasAlarm", 1);
// once desired fields are set, insert it into the table
getContentResolver().insert(
Uri.parse("content://com.android.calendar/events"), cv);
}
}
}
этот код работает, но он спрашивает меня, хочу ли я участвовать в мероприятии, когда я его открываю, и я бы хотел, чтобы он этого не делал
благодаря
Uri of Calendar изменился с Android 2.2.
Old (2.1 and before): content://calendar/
New (2.2): content://com.android.calendar/
Измените свой Uri на новый.
В Android нет приложения для календаря. Таким образом, Ури может вообще не работать. Если вы получаете первое сообщение об ошибке "Не удалось найти информацию о провайдере для com.android.calendar", вам необходимо проверить трубку, которую вы используете для отладки, использует Календарный URI. Чтобы вставить событие "Время в календаре", вы можете использовать следующий пример кода:
Calendar calendar = Calendar.getInstance();
calendar.getTimeInMillis();
cv.put("dtstart", ""+calendar.getTimeInMillis());
cv.put("dtend", ""+calendar.getTimeInMillis()+10000);
//сделал U включить разрешение в вашем файле manifest.xml
android.permission.READ_CALENDAR
android.permission.WRITE_CALENDAR
String WRITE_CALENDAR Allows an application to write (but not read) the user calendar data.