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

Ошибка администраторских прав: Request to add invalid device admin - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Proguard в android studio http://www.cyberforum.ru/android-dev/thread1658399.html
В гугле перелазил с этим вопросом, но ничего толком не нашел, поэтому пишу сюда. В общем, создаю apk файл в android studio с использованием proguard, все нормально файл создается без ошибок, запускаю на эмуляторе(на телефоне тоже пробовал). И вот тут то начинаются странности, он мне показывает приложение 2-х версий давности, т.е. без последних изменений, я пошел обратно в android studio и для...
Программирование Android Простой SIP клиент Доброго времени суток. У меня возникла задачка сделать простое приложение которое будет звонить на мой Asterisk(телефонная станция). стандартные методы Android.Net.Sip не работают так как говорят что мой телефон и любой эмулированый не поддерживает SipManager.IsApiSupported(this) SipManager.IsVoipSupported(this) возвращают мне false. Я решил использовать сторонний Стак например pjsip. Нашел open... http://www.cyberforum.ru/android-dev/thread1658389.html
Ввод числа Программирование Android
Добрый день. :senor: Задача у меня специфическая. По клику на button надо показать цифровую клавиатуру с полем ввода. По кнопке "Готово" (на клавиатуре) мне нужно обработать число и если оно не подходит высветить Toast, но при этом клавиатуру не закрывать. Задача с одной стороны простая, но что то сегодня торможу, подскажите куда смотреть.
Вывод во втором фрагменте длины текста, введённого в первом фрагменте активити Программирование Android
Создать активити с двумя фрагментами. В первый фрагмент должен содержать поле ввода, второй текстовое поле. Выводить во втором фрагменте длину текста введённого в первом фрагменте(Динаично).
Программирование Android Не получается запустить пустой проект AndroidStudio http://www.cyberforum.ru/android-dev/thread1658266.html
Создаю проект пустого приложения. Оно мне подчеркивает @Override, если на него кликнуть, предлагает убрать, если убрать, предлагает поставить @java.lang.Override. Ставлю. Выделяет красным (Cannot resolve symbol). Еще красным выделено Bundle. Эмулятор просто висит с надписью android.
Программирование Android Ошибка в простейшем коде SELECT name as id_d FROM dolz UNION ALL SELECT name as id_o FROM otdel собственно хочу объединить два столбца в одну таблицу, но при объединении результат собирается в один столбец id_d, подскажите начинающему, ибо голову всю уже сломал, там синтаксис то 3 слова, ума не приложу где я ошибся. подробнее

Показать сообщение отдельно
HanDi
890 / 337 / 8
Регистрация: 11.02.2012
Сообщений: 1,502

Ошибка администраторских прав: Request to add invalid device admin - Программирование Android

09.02.2016, 13:55. Просмотров 342. Ответов 1
Метки (Все метки)

Пробую получить права администратора примерно таким образом как описано вот тут (или тут).

Так вот при попытке получения прав (нажатие на кнопку), на долю секунды выскакивает это окошко с получением прав и сразу же пропадает.

Не понимаю, в чем проблема.

В итоге в логах вываливается:

W/DeviceAdminAdd﹕ Request to add invalid device admin: ComponentInfo{com.example.lockscreentest/com.example.lockscreentest.MyAdmin}

I/DeviceAdminSample﹕ Admin enable FAILED!

Смотрел и гугл и dev android, нигде не могу найти по этой ошибке информацию.

На всякий случай приложу код:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.lockscreentest"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="21"/>
    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
        <activity android:name="LockScreenActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <receiver android:name=".MyAdmin" android:permission="android.permission.BIND_DEVICE_ADMIN">
            <meta-data android:name="android.app.device_admin" android:resource="@xml/policies">
                <intent-filter>
                    <action android:name="android.app.action.DEVICE_ADMIN_ENABLED">
                    </action></intent-filter>
            </meta-data>
        </receiver>
    </application>
</manifest>

policies:


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>
MyAdmin.java:

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
package com.example.lockscreentest;
 
import android.app.admin.DeviceAdminReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.widget.Toast;
 
public class MyAdmin extends DeviceAdminReceiver {
 
    static SharedPreferences getSamplePreferences(Context context) {
        return context.getSharedPreferences(
                DeviceAdminReceiver.class.getName(), 0);
    }
 
    static String PREF_PASSWORD_QUALITY = "password_quality";
    static String PREF_PASSWORD_LENGTH = "password_length";
    static String PREF_MAX_FAILED_PW = "max_failed_pw";
 
    void showToast(Context context, CharSequence msg) {
        Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
    }
 
    @Override
    public void onEnabled(Context context, Intent intent) {
        showToast(context, "Sample Device Admin: enabled");
    }
 
    @Override
    public CharSequence onDisableRequested(Context context, Intent intent) {
        return "This is an optional message to warn the user about disabling.";
    }
 
    @Override
    public void onDisabled(Context context, Intent intent) {
        showToast(context, "Sample Device Admin: disabled");
    }
 
    @Override
    public void onPasswordChanged(Context context, Intent intent) {
        showToast(context, "Sample Device Admin: pw changed");
    }
 
    @Override
    public void onPasswordFailed(Context context, Intent intent) {
        showToast(context, "Sample Device Admin: pw failed");
    }
 
    @Override
    public void onPasswordSucceeded(Context context, Intent intent) {
        showToast(context, "Sample Device Admin: pw succeeded");
    }
 
}

LockScreenActivity:


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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package com.example.lockscreentest;
 
import android.app.Activity;
import android.app.ActivityManager;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
 
public class LockScreenActivity extends Activity implements View.OnClickListener {
 
    private Button lock;
    private Button disable;
    private Button enable;
    static final int RESULT_ENABLE = 1;
 
    DevicePolicyManager deviceManger;
    ActivityManager activityManager;
    ComponentName compName;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        deviceManger = (DevicePolicyManager)getSystemService(
                Context.DEVICE_POLICY_SERVICE);
        activityManager = (ActivityManager)getSystemService(
                Context.ACTIVITY_SERVICE);
        compName = new ComponentName(this, MyAdmin.class);
 
        //setContentView(R.layout.main);
 
        lock =(Button)findViewById(R.id.lock);
        lock.setOnClickListener(this);
 
        disable = (Button)findViewById(R.id.btnDisable);
        enable =(Button)findViewById(R.id.btnEnable);
        disable.setOnClickListener(this);
        enable.setOnClickListener(this);
 
    }
 
    @Override
    public void onClick(View v) {
 
        if(v == lock){
            boolean active = deviceManger.isAdminActive(compName);
            if (active) {
                deviceManger.lockNow();
            }
        }
 
        if(v == enable){
            Intent intent = new Intent(DevicePolicyManager
                    .ACTION_ADD_DEVICE_ADMIN);
            intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
                    compName);
            intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                    "Additional text explaining why this needs to be added.");
            startActivityForResult(intent, RESULT_ENABLE);
            Log.d("123", "zxc"); // 
        }
 
        if(v == disable){
            deviceManger.removeActiveAdmin(compName);
            updateButtonStates();
        }
    }
 
    private void updateButtonStates() {
 
        boolean active = deviceManger.isAdminActive(compName);
        if (active) {
            enable.setEnabled(false);
            disable.setEnabled(true);
 
        } else {
            enable.setEnabled(true);
            disable.setEnabled(false);
        }
    }
 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
            case RESULT_ENABLE:
                if (resultCode == Activity.RESULT_OK) {
                    Log.i("DeviceAdminSample", "Admin enabled!");
                } else {
                    Log.i("DeviceAdminSample", "Admin enable FAILED!");
                }
                return;
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru