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

Передача прав администратора из MainActivity - Android

Восстановить пароль Регистрация
 
xomiak21
0 / 0 / 0
Регистрация: 22.08.2013
Сообщений: 4
05.10.2014, 23:46     Передача прав администратора из MainActivity #1
Работаю с политиками безопасности и создаю администратора в MainActivity вот так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
public class MainActivity extends Activity implements
OnCheckedChangeListener{
    protected ImageButton butToPassWindow;
    DevicePolicyManager mDPM;
    ComponentName mDeviceAdminSample;
    ToggleButton toggleButton;
    static final String TAG = "MainActivity";
    private static final int REQUEST_CODE_ENABLE_ADMIN = 47;
    
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
        mDeviceAdminSample = new ComponentName(this, DeviceAdminSample.class);
        setContentView(R.layout.main);
        toggleButton = (ToggleButton) super.findViewById(R.id.toggleButton1);
        toggleButton.setOnCheckedChangeListener(this);
        butToPassWindow = (ImageButton) findViewById(R.id.btnToPassWindow);
        butToPassWindow.setOnClickListener(new OnClickListener() {
             @Override
                public void onClick(View view) {
                 Intent intent = new Intent(MainActivity.this, PasswordActivity.class);
                    startActivity(intent);
                }
            });
        
        
        
    }
    @Override
    public void onCheckedChanged(CompoundButton button, boolean isChecked) {
        if (isChecked) {
            // Activate device administration
            Intent intent = new Intent(
                    DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
            intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
                    mDeviceAdminSample);
            intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                    R.string.add_admin_extra_app_text);
            startActivityForResult(intent, REQUEST_CODE_ENABLE_ADMIN);
        }
        Log.d(TAG, "onCheckedChanged to: " + isChecked);
    }
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
        case REQUEST_CODE_ENABLE_ADMIN:
            if (resultCode == Activity.RESULT_OK) {
                Log.i(TAG, "Administration enabled!");
                toggleButton.setChecked(true);
            } else {
                Log.i(TAG, "Administration enable FAILED!");
                toggleButton.setChecked(false);
            }
            return;
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
 
}
Получаю права администратора:
Передача прав администратора из MainActivity

после этого пытаюсь получить эти права уже в другой Activity и получаю ошибку
The method getActivity() is undefined for the type MinPassLength:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class MinPassLength extends Activity {
    protected EditText mEdtPassLen;
    protected MainActivity mActivity;
    private Button mOkPassLen;
    protected DevicePolicyManager mDPM;
    protected ComponentName mDeviceAdminSample;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_min_pass_length);
        mActivity = (MainActivity) getActivity(); 
        mDPM = mActivity.mDPM;
        mDeviceAdminSample = mActivity.mDeviceAdminSample;
        
        mOkPassLen = (Button) findViewById(R.id.butOkPassLen);
        mEdtPassLen = (EditText) findViewById(R.id.editPassLen);
        
            mOkPassLen.setOnClickListener(new OnClickListener() {
                 @Override
                    public void onClick(View view) {
                     if (mEdtPassLen.getTextSize()>0)
                        {   
                            int newMinLen = Integer.valueOf(mEdtPassLen.getText().toString()) ;
                            mDPM.setPasswordMinimumLength(mDeviceAdminSample, 5);
                            finish();
                        }
                      
                    }
                });
            
        
    }
}
Мой XML для администратора:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
  <uses-policies>
    <limit-password />
    <watch-login />
    <reset-password />
    <force-lock />
    <wipe-data />
    <expire-password />
    <encrypted-storage />
    <disable-camera />
  </uses-policies>
</device-admin>
Часть Манифеста:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
         <receiver
            android:name=".DeviceAdminSample"
            android:permission="android.permission.BIND_DEVICE_ADMIN" >
            <intent-filter>
 
                <!-- This action is required -->
                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
            </intent-filter>
 
            <!-- This is required this receiver to become device admin component. -->
            <meta-data
                android:name="android.app.device_admin"
                android:resource="@xml/my_admin" />
        </receiver>
Вопрос собственно: как передать из MainActivity в любые другие mDeviceAdminSample для установки политик?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2014, 23:46     Передача прав администратора из MainActivity
Посмотрите здесь:

Android Notification - запуск MainActivity
Android SplashScreen не дает запуститься MainActivity
Eclipse не генерирует MainActivity и layout-файл Android
Не создается MainActivity.java Android
Android Eclipse в новом проекте не создает MainActivity
Android Не могудобраться из MainActivity к etNum1, который в PlaceholderFragment
Доступ к полям MainActivity Android
Обращение к функции находящейся не в MainActivity Android
Переделать MainActivity в Fragment Android
Android Как запустить метод Fragment из MainActivity?
MainActivity AsyncTask Android
OnClickListener не может вызвать метод с MainActivity Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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