Специальные права доступа и их использование

Специальные права доступа и их использование

Android позволяет определить специальные права доступа для приложения. Например, если нужно запретить некоторым пользователям запуск в рамках приложения одной из активностей, то это можно сделать, определив специальные права доступа. Для этого нужно вначале объявить их в файле AndroidManifest.xml, а потом к ним можно будет обращаться как к части определения компонентов. Ниже это будет продемонстрировано на примерах.

Давайте создадим приложение, содержащее активность, которую разрешено запускать не всем. Для запуска этой активности пользователь должен иметь специфическое разрешение. Поскольку у нас имеется приложение с привилегированной активностью, можно написать клиент, который умеет вызывать эту активность.

На заметку! В конце главы будет дан URL-адрес, по которому можно загрузить проекты, рассмотренные в этой главе, и затем импортировать их непосредственно в Eclipse.

Вначале создайте проект со специальным правом доступа и активностью. Откройте IDE-среду Eclipse и выберите пункт меню NewONew ProjectOAndroid Project (Создать^ Новый проект^ Проект Android). Откроется диалоговое окно New Android Project (Создание проекта Android). В поле имени проекта введите CustomPermission, выберите переключатель Create new project in workspace (Создать новый проект в рабочем пространстве) и отметьте флажок Use default location (Использовать стандартное местоположение). В поле имени приложения введите Custom Permission, в поле имени пакета — com.cust.perm, в качестве имени активности укажите CustPermMainActivity и отметьте нужные флажки в разделе Build Target (Тип сборки). Щелкните на кнопке Finish (Готово), чтобы создать проект. В сгенерированном проекте будет находиться только что созданная активность, которая будет играть роль активности по умолчанию (главной). Кроме того, мы создадим привилегированную активность — активность, которая требует специального разрешения. В Eclipse выберите пакет com.cust.perm, создайте класс PrivActivity (с суперклассом android.app.Activity) и скопируйте в него код из а 14.4.

package com.cust.perm;

import android.app.Activity; import android.os.Bundle;

import android.view.ViewGroup.LayoutParams; import android.widget.LinearLayout; import android.widget.TextView;

public class PrivActivity extends Activity {

@Ove rride

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

LinearLayout view = new LinearLayout(this);

view.setLayoutParams(new LayoutParams(

LayoutParams.FILL PARENT, LayoutParams.WRAP CONTENT)); view.setOrientation(LinearLayout.HORIZONTAL);

TextView nameLbl = new TextView(this);

nameLbl.setText("Hello from PrivActivity"); view.addView(nameLbl);

setContentView(view);

}

}

Как видите, класс PrivActivity не делает ничего сверхъестественного. Мы просто хотим продемонстрировать, как спроектировать такую активность с особым доступом и как вызвать ее из клиента. При успешном вызове на экране появится текст Hello from PrivActivity. Теперь, при наличии активности, которую нужно защитить, можно создать право доступа для нее.

Чтобы создать специальное право доступа, необходимо определить его в файле AndroidManifest.xml. Проще всего это сделать с помощью редактора манифеста.

Дважды щелкните на файле AndroidManifest.xml и перейдите на вкладку Permissions (Права доступа). В окне Permissions щелкните на кнопке Add (Добавить), выберите переключатель Permission (Право доступа) и щелкните на кнопке OK. Редактор манифеста создаст новое право доступа. Заполните сведения о нем — для этого понадобится установить его атрибуты, как показано на рис. 14.6. Введите данные в поля в правой части, и если метка в левой части все еще содержит текст Permission, щелкните на ней: этот текст должен измениться на имя из правой части.

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Добавить комментарий