Не забудьте добавить в файл-манифест соответствующие права для доступа к спискам контактов:
<uses-permission android:name=”android.permission.READ_CONTACTS” />
Снипет java кода для получения списка контактов из телефонной книжки с номерами телефонов.
Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[] {Phone._ID, Phone.DISPLAY_NAME, Phone.NUMBER}, null, null, null);
startManagingCursor(cursor);
if (cursor.getCount() > 0)
{
while (cursor.moveToNext())
{
// process them as you want
Log.i("DATA"," ID "+cursor.getString(0)+" NAME"+cursor.getString(1)+" PHONE "+cursor.getString(2));
}
}
14 comments
Skip to comment form
Ошибка в строке: Log.i(“DATA”,” ID “+cursor.getString(0)+” NAME”+cursor.getString(1)+” PHONE “+cursor.getString(2));
Author
Не вижу. Скопируйте текст ошибки.
Вот: Syntax error on tokens, delete these tokens
А можете ещё подсказать, как это на TextView вывести.?
Author
Касательно ошибки – это скорее всего проявляет себя злобный гений движка wordpress’а.
Попробуйте просто перенабрать весь текст разделяя строчки обычными прямыми ковычками.
Author
как все это вывести на TextView:
(учтите – вы так будете выводить только одну запись)
// somewhere in your activity class definition private TextView Your_Desired_Text_View; // somewhere in your activity class initComponent() function ... LayoutInflater inflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater.inflate(R.layout.your_own_widget_in_xml, this); Your_Desired_Text_View = (TextView) findViewById(R.id.employee_task_done_value); .... // and finaly set string to TextView Employee_Task_Done_Value.setText("Put desired string here");Author
Если вы хотите вывести весь список контактов в виде прокручиваемого списка,
где каждая ячейка – отдельный TextView, с информацией по отдельному контакту из телефонной книжки
– вам необходимо использовать ListView:
// somewhere in your activity class definition private ListView List_For_Store_Contact_Info; ArrayList<String> Contact_Info = new ArrayList<String>(); // somewhere in your activity class onCreate() function ... setContentView(R.layout.main); List_For_Store_Contact_Info=(ListView)findViewById(R.id.list_for_store_contact_info); // fill your Array List with appropriate values from Contacts List: ... while (cursor.moveToNext()) { Contact_Info.add(" ID "+cursor.getString(0)+" NAME"+cursor.getString(1)+" PHONE "+cursor.getString(2))); } List_For_Store_Contact_Info.setAdapter(new ArrayAdapter<String>(this,android.R.layout.list_for_store_contact_info , Contact_Info));Спасибо большое.Я новичёк я не понимаю, что вместо точек нужно…((((( Можно цельный код увидеть???
Вот правильный код.
if (cursor.getCount() > 0)
{
while (cursor.moveToNext())
{
// process them as you want
Log.i(“DATA”,” ID “+cursor.getString(0)+” NAME”+cursor.getString(1)+” PHONE “+cursor.getString(2));
}
}
Author
вот хоть убей не вижу различий с исходным сниппетом 🙂
А Eclipse видит 🙂
Кстати, если не сложно, покажи как правильно получить массив из всей телефонной книги.
То есть хочу получить массив из имен всей телефонной книжки, а потом вставить его в адаптер.
Author
про массив имен из телефонной книжки писал чуть выше – http://my-it-notes.com/2011/11/how-to-get-contacts-list-android-using-java/#comment-839
Добрый день! я только в начале пути по андроид. Не могли бы подсказать а как можно подсчитать свои исход и вход вызовы на телефоне и их длительность. Или где можно узнать такую инфу. хочу написать свой счетчик трафика звонков. Спасибо за помощь
Author
Зарегистрировать свой сервис с парой колбек-функций – на начало и конец звонка, замеряющих текущее время и записывающий в базу-sqlite – всю необходимую статистику, которую потом можно вывести в том или ином виде.
А вообще, общая статистика по длительности вызовов на телефонах как правило ведется, только вот не сущестует унифицированного способа ее получить – ищите по конкретной модели.
А как получить журнал вызовов, т.е. входящий, исходящий, пропущенный вызовы?