Клиент для привилегированной активности
А теперь давайте напишем клиент для привилегированной активности. В Eclipse выберите пункт меню NewONew ProjectOAndroid Project (СоздатьОНовый проектОПроект Android). В поле имени проекта введите ClientOfCustomPermission, выберите переключатель Create new project in workspace (Создать новый проект в рабочем пространстве) и отметьте флажок Use default location (Использовать стандартное местоположение). В поле имени приложения введите Client Of Custom Permission, в поле имени пакета — com.client.cust.perm, в качестве имени активности укажите ClientCustPermMainActivity и отметьте нужные флажки в разделе Build Target (Тип сборки). Щелкните на кнопке Finish (Готово), чтобы создать проект.
Далее необходимо написать код активности, содержащей кнопку, при щелчке на которой будет вызываться привилегированная активность. Скопируйте в файл main.xml только что созданного проекта компоновку, показанную в е 14.6.
>?xml version="1.0" encoding="utf-8"?<
>LinearLayout xmlns:android=»http://schemas.android.com/apk/res/android» android:orientation="vertical"
android:layout width="fill parent" android:layout height="fill parent" <
>Button android:id="@+id/btn" android:text="Launch PrivActivity" android:layout width="wrap content" android:layout height="wrap content" android:onClick="doClick" /<
>/LinearLayout<
Как видите, в XML-файле компоновки определена одна кнопка с текстом Launch PrivActivity (Запустить привилегированную активность). А теперь напишем код активности, которая будет обрабатывать событие щелчка на кнопке и запускать привилегированную активность. Скопируйте код из а 14.7 в класс ClientCustPermMainActivity.
В е 14.7 видно, что после щелчка на кнопке создается новое намерение, а затем устанавливается имя класса активности, которую надо запустить. В данном случае необходимо запустить активность com.cust.perm.PrivActivity из пакета com.cust.perm.
Остался лишь элемент uses-permission, который необходимо добавить в файл манифеста, чтобы сообщить среде времени выполнения Android, что нужно запустить dcm.permission.STARTMYACTIVITY. Поместите в файл манифеста для клиентского проекта код, показанный в е 14.8.
Как показано в е 14.8, был добавлен элемент uses-permission для запроса специальных прав доступа, которые нужны для запуска активности PrivActivity, реализованной в проекте.
Теперь все готово для того, чтобы развернуть клиентский проект в эмуляторе и щелкнуть на кнопке Launch PrivActivity. После этого вы должны увидеть текст Hello from PrivActivity.
После успешного вызова привилегированной активности удалите элемент uses-permission из файла манифеста для клиентского проекта и снова разверните проект в эмуляторе. Теперь при щелчке на кнопке запуска привилегированной активности вы должны получить сообщение об ошибке. Обратите внимание, что LogCat отобразит исключение отказа в доступе.
Теперь вы знаете, как работают специальные права доступа в Android. Очевидно, что специальные права доступа можно применять не только для активностей. В действительности как предопределенные, так и специальные права доступа можно применять также к компонентам Android других типов. Мы рассмотрим один важный тип — права доступа к URI.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.