календарь, запуск, доступ к веб-сервисам в Android - PullRequest
1 голос
/ 03 марта 2011

Здравствуйте, м Я новичок в Android .. У меня есть Samsung Galaxy 3 и Android 2.1 установлен в нем .. Я хочу построить виджет следующим образом ..

1. Я хочу получить доступ к календарю телефона .. (гуглил много разных ответов, но нет wokrin ..) (jimblackler.net/blog/?p=151 не работает) .. Поскольку общедоступный API недоступен, все будет в порядке, даже если я смогу использовать календарь Google (тот, что находится в Интернете). Дайте мне знать, что проще реализовать. Я просто хочу читать события ..

2.Как мне запускать события в определенное время .. скажем, когда это 3:00, он должен вызвать функцию .. Является ли это возможным ? если да, то как

3. Я хочу отправить две строки на сервер и получить и другой текст в качестве результата. какой будет самый простой способ кодирования ?? есть веб-служба c # ..? или просто использовать скрипт php на сервере, принимающем несколько параметров?

спасибо большое. :)

1 Ответ

0 голосов
/ 03 марта 2011

Первый вопрос: Доступ к календарю: это основано на URI содержимого: // calendar / calendars. Во-первых, убедитесь, что ваше приложение определяет разрешение android.permission.READ_CALENDAR.

Получить идентификаторы календарей и отображаемые имена:

ContentResolver myContentResolver = getContentResolver();

final Cursor cursor = myContentResolver.query(Uri.parse("content://calendar/calendars"),
        (new String[] { "_id", "displayName", "selected" }), null, null, null);

while (cursor.moveToNext()) {

    final String _id = cursor.getString(0);
    final String displayName = cursor.getString(1);
    final Boolean selected = !cursor.getString(2).equals("0");
}

Работа над конкретным календарем:

Uri.Builder myUriBuilder = Uri.parse("content://calendar/instances/when").buildUpon();
long currentTime = new Date().getTime();
ContentUris.appendId(myUriBuilder , currentTime  - DateUtils.WEEK_IN_MILLIS);
ContentUris.appendId(myUriBuilder, currentTime + DateUtils.WEEK_IN_MILLIS);

Cursor eventCursor = myContentResolver.query(myUriBuilder.build(),
        new String[] { "title", "begin", "end", "allDay"}, "Calendars._id=" + id,
        null, "startDay ASC, startMinute ASC");

while (eventCursor.moveToNext()) {
    // fields:
    // Event title - String - 0
    String eventTitle = eventCursor.getString(0);
    // Event start time - long - 1
    Date startTime = new Date(eventCursor.getLong(1));
    // Event end time - login - 2
    Date endTime = new Date(eventCursor.getLong(2));
    // Is it an All Day Event - String - 3 (0 is false, 1 is true)
    Boolean allDay = !eventCursor.getString(3).equals("0");

}


Второй вопрос: планирование событий: По сути, вы должны использовать класс AlarmManager, подробности смотрите в Android SDK. Пример установки события через 3 часа:
 Calendar cal = Calendar.getInstance();
 cal.add(Calendar.HOUR, 3);
 Intent intent = new Intent(this, MyAlarmHandler.class);
 intent.putExtra("alarm_message", "Wake up!");
 int requestCode = 3824723; // this is not currently used by Android.
 PendingIntent pIntent = PendingIntent.getBroadcast(this, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
 AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
 alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pIntent);


Третий вопрос: да, я предлагаю подход PHP
...