Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
mindzu
22 / 5 / 1
Регистрация: 08.09.2011
Сообщений: 13
#1

Как задать права доступа в программе - Android

19.09.2011, 13:06. Просмотров 1445. Ответов 1
Метки нет (Все метки)

Делаю программу, в которой нужен доступ к списку контактов телефона. В манифесте добавил настройку
XML
1
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
В активити такой текст:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.Contacts.People;
import android.widget.SimpleCursorAdapter;
 
public class Listview2Activity extends ListActivity {
    /** Called when the activity is first created. */
    private SimpleCursorAdapter adapter;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Cursor c = getContentResolver().query(People.CONTENT_URI, null, null, null, null);
        startManagingCursor(c);
        String[] cols = new String [] {People.NAME};
        int[] names = new int[]{R.id.text};
        adapter = new SimpleCursorAdapter (this, R.layout.main,c,cols,names);
        this.setListAdapter(adapter);
    }
}
Программа подчеркивает все строки, где идет обращение к списку контактов (People) и пишет, что доступ закрыт. Запускается, но сразу после запуска выдает ошибку, что запрашиваемые ресурсы не найдены и вылетает. Все написано по учебнику, но в нем не были указаны импорты. Может в них ошибка?

Добавлено через 17 часов 42 минуты
Разобрался сам. Если кому нужно - выкладываю. В строке 4 импорт будет таким:
Java
1
import android.provider.ContactsContract.Contacts;
В строках 16 и 18 People исправить на Contacts и NAME на DISPLAY_NAME.

P.S. Прогамма писалась для API=8, в учебнике 3
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2011, 13:06     Как задать права доступа в программе
Посмотрите здесь:

Дизайн: как задать программно интерфейс приложения? Android
Android Как задать ширину элемента в процентах?
Android как задать android:label в рантайме?
Как задать прозрачный фон? Android
Android MediaPlayer, как программно задать определенный файл на воспроизведение?
Content description как задать? Android
Android Как задать координаты анимации
Как задать относительный размер ImageView? Android
Как правильно задать рамеры тексту? Android
Android Как сделать просмотр содержимого в программе, как в браузере
Android Класс Date, как правильно задать дату?
Как у TextView задать текст? Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
28.09.2011, 11:56     Как задать права доступа в программе #2
mindzu, если еще актуально, то, насколько я помню, с 4 API доступ к контактам немного по-другому делается.
Java
1
2
3
4
5
6
7
8
9
Cursor curCont = getContentResolver().query(
                ContactsContract.Contacts.CONTENT_URI,
                null, null, null, ContactsContract.Contacts.DISPLAY_NAME);
     
        CursorAdapter curAdCont = new SimpleCursorAdapter(this,
            android.R.layout.test_list_item,
            curCont, 
            new String[] { ContactsContract.Contacts.DISPLAY_NAME },
            new int[] { android.R.id.text1 });
Извиняюсь, не заметил, что человек сам разобрался. Мое сообщение лишнее.
Yandex
Объявления
28.09.2011, 11:56     Как задать права доступа в программе
Ответ Создать тему
Опции темы

Текущее время: 06:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru