Разбирался со следующим: мой красивенький виджет я сделал для WidgetLocker-а - кастомного локскрина, который показывает любые виджеты на себе
Естественно ткнув в телефон, хочется на локскрине увидеть кроме текущего времени и что-то более полезное – кол-во пропущенных звонков, непрочитанных почт/смс
Научился получать количество пропущенных звонков пока:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Cursor c = getContentResolver().query( CallLog.Calls.CONTENT_URI, null, CallLog.Calls.TYPE + " = ? AND " + CallLog.Calls.NEW + " = ?", new String[] { Integer.toString(CallLog.Calls.MISSED_TYPE), "1" }, CallLog.Calls.DATE + " DESC" ); startManagingCursor(c); int numberColumn = c.getColumnIndex(CallLog.Calls.NUMBER); int dateColumn = c.getColumnIndex(CallLog.Calls.DATE); int typeColumn = c.getColumnIndex(CallLog.Calls.TYPE); if (c.moveToFirst()) { do { String number = c.getString(numberColumn); Log.d(TAG, "number: " + number + ", type: " + c.getInt(typeColumn)); } while (c.moveToNext()); } }
Позвонил сам себе со скайпа и не взял трубку, и в логе вижу при запуске программы:
02-24 22:31:03.197: DEBUG/Telephony test(15516): number: -1, type: 3
Номер –1 – потому что со скайпа, 3 – MISSED CALLS, причем показаны именно новые, а не “вообще”; но вообще мне конечно не очень нужны номера, мне надо c.getCount() – получить количество записей в выборке
Теперь надо почитать про ContentObserver; я так понял пока, что это типа broadcast receiver-а, но не совсем; и по изменению состояния обсервера (?) обновлять виджет, дорисовывая “балунчик” с количеством непринятых звонков. Вот только с рисованием у меня не очень, буду где-то что-то комуниздить :)
Комментариев нет:
Отправить комментарий