我只是想跟上Android的步伐,我想把日历事件发送给手机上的其他人。和whatsapp发送联系人一样。为了在chat (XMPP)中发送联系人,我使用了vCard。因此,在聊天中发送日历事件,我应该使用什么?
我找了很多东西。但却找不到有成果的东西。
请建议在XMPP中发送日历事件的库或代码片段。
提前谢谢。
发布于 2014-05-01 06:51:27
发布于 2014-05-01 11:56:26
清单
<uses-permission android:name="android.permission.READ_CALENDAR" />代码:
Cursor cursor = cr.query(Uri.parse("content://calendar/calendars"), new String[]{ "_id", "displayname" }, null, null, 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();获取所有事件,而特定事件则通过指定范围来完成。
ContentResolver contentResolver = getContentResolver();
Uri.Builder builder = Uri.parse(getCalendarUriBase() + "/instances/when").buildUpon();
long now = new Date().getTime();
ContentUris.appendId(builder, now - DateUtils.MILLIS_PER_DAY*10000);
ContentUris.appendId(builder, now + DateUtils.MILLIS_PER_DAY * 10000);然后假设您希望用ID =1记录日历中的事件ID
Cursor eventCursor = contentResolver.query(builder.build(),
new String[] { "event_id"}, "Calendars._id=" + 1,
null, "startDay ASC, startMinute ASC");
// For a full list of available columns see http://tinyurl.com/yfbg76w
while (eventCursor.moveToNext()) {
String uid2 = eventCursor.getString(0);
Log.v("eventID : ", uid2);
}现在,在Listview中显示此事件,选择其中一个作为文本消息发送,并在接收端:
Calendar cal = Calendar.getInstance();
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("beginTime", cal.getTimeInMillis());
intent.putExtra("allDay", true);
intent.putExtra("rrule", "FREQ=YEARLY");
intent.putExtra("endTime", cal.getTimeInMillis()+60*60*1000);
intent.putExtra("title", HERE MSG WHICH YOU RECEIVE);
startActivity(intent);发布于 2014-04-28 10:08:36
没有AFAIK库,这实际上只是检索日历事件并将其数据转换为XML的问题。不幸的是,也没有关于日历事件应该如何用XMPP/XML表示的XEP,所以您必须想出自己的表示。
https://stackoverflow.com/questions/23307651
复制相似问题