Есть ли кто-нибудь, который может помочь мне с кодом для установки пароля для блокировки экрана? ТНХКак я могу настроить блокировку экрана с помощью программного обеспечения?
ответ
http://developer.android.com/guide/topics/admin/device-admin.html
private static DevicePolicyManager dpm =
(DevicePolicyManager)context
.getSystemService(Context.DEVICE_POLICY_SERVICE);
private static ComponentName admin =
new ComponentName(context, DeviceAdminManager.class);
// add password policies you want
dpm.setPasswordQuality(admin, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
dpm.setPasswordMinimumLength(admin, 5);
**boolean result = dpm.resetPassword("newPassword", RESET_PASSWORD_WITHOUT_ENTRY);**
проверить этот сайт http://blog.stef.be/patternlock. На этом веб-сайте реализация шаблона блокировки экрана с использованием javascript, html и css была определена очень четко ... Весь код доступен с момента его открытия. Надеюсь, что он поможет вам
Используйте этот код в своем приложении, он работает для меня:
DevicePolicyManager devicePolicyManager =
DevicePolicyManager.getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName demoDeviceAdmin = new ComponentName(this, name of activity);
devicePolicyManager.setPasswordQuality(
demoDeviceAdmin,DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
devicePolicyManager.setPasswordMinimumLength(demoDeviceAdmin, 5);
boolean result = devicePolicyManager.resetPassword("123456",
DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);
Toast.makeText(this,
"button_lock_password_device..."+result,
Toast.LENGTH_LONG).show();
Проверьте это. Это сработало для меня.
LockScreenActivity.java
package com.kns;
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.view.View.OnClickListener;
import android.widget.Button;
public class LockScreenActivity extends Activity implements 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);
}
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);
}
}
MyAdmin.java
package com.kns;
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");
}
}
main.xml
<textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="To Lock Screen First Enable it.." android:textsize="15sp"></textview>
<button android:id="@+id/lock" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Lock The Phone"></button>
<button android:id="@+id/btnEnable" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Enable"></button>
<button android:id="@+id/btnDisable" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Disable"></button></linearlayout>
policies.xml
<?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>
</wipe-data></force-lock></reset-password></watch-login></limit-password></uses-policies>
</device-admin>
Вы можете иметь это policies.xml либо в макете или в папке XML. Единственное, что вам нужно позаботиться, это metadata тег в Androidmanifest файл.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.kns" android:versioncode="1" android:versionname="1.0">
<uses-sdk android:minsdkversion="8">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<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">
</category></action></intent-filter>
</activity>
<receiver android:name=".MyAdmin" android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data android:name="android.app.device_admin" android:resource="@layout/policies">
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED">
</action></intent-filter>
</meta-data></receiver>
</application>
</uses-sdk></manifest>
Перед блокировки экрана необходимо включить ADMIN разрешения
Тогда вы получите это ..
После Позволяют заблокирует экран .. например
Ссылка на потенциальное решение всегда приветствуется, но, пожалуйста, [добавьте контекст вокруг ссылки] (http://meta.stackoverflow.com/a/8259/169503), чтобы ваши друзья-пользователи имели представление о том, что это такое и почему Это здесь. Всегда указывайте наиболее значимую часть важной ссылки, если целевой сайт недоступен или постоянно находится в автономном режиме. Примите во внимание, что быть более чем ссылкой на внешний сайт_ является возможной причиной [Почему и как удаляются некоторые ответы?] (Http://stackoverflow.com/help/deleted-answers). –
спасибо XaviLópez – Sathish
Спасибо за вклад в SO! –
Android N не работает, See Here
Примечание: Этот API был ограничен от N админов устройств, которые не являются владельцем устройства, а не профиль владельца. Теперь пароль можно изменить только в том случае, если в настоящее время пароль не установлен. Владелец устройства и владелец профиля все еще могут это сделать, когда пользователь разблокирован и не имеет управляемого профиля.
- 1. Как я могу отменить блокировку экрана с помощью программного обеспечения?
- 2. Настроить блокировку экрана
- 3. Как я могу представить поток программного обеспечения с помощью BPMN?
- 4. Как я могу использовать Контейнеры Windows для тестирования программного обеспечения?
- 5. Найти доступность программного обеспечения для программного обеспечения
- 6. разработка программного обеспечения для анализа программного обеспечения
- 7. Выполнение запроса с помощью промежуточного программного обеспечения
- 8. Эмуляция карты с помощью программного обеспечения NFC
- 9. Тестирование программного обеспечения и оценка программного обеспечения
- 10. Как я могу проверить приложение rails без стороннего программного обеспечения?
- 11. Как я могу получить последнюю доступную дату программного обеспечения
- 12. Где и как я могу узнать методы тестирования программного обеспечения?
- 13. Как я могу найти путь от установленного программного обеспечения? 1
- 14. Установка программного обеспечения с помощью Makefile
- 15. Как настроить сертификат для загружаемого серверного программного обеспечения
- 16. Защита программного обеспечения с помощью шифрования
- 17. Изменение базы данных с помощью программного обеспечения
- 18. Как я могу использовать блокировку экрана в мое приложение
- 19. Как создать блокировку экрана
- 20. Управление USB-подсветкой с помощью программного обеспечения
- 21. Настройки программирования программного обеспечения с помощью java
- 22. Подтвердить XML с помощью программного обеспечения XSD
- 23. Веб-просмотр программного обеспечения
- 24. Как предотвратить блокировку экрана ios с Qt
- 25. Создание установщика программного обеспечения
- 26. Как настроить шаблоны Builder и Decorator для настраиваемого программного обеспечения?
- 27. Однородная интеграция программного обеспечения
- 28. Создание программного обеспечения UISearchDisplayController
- 29. Автоматизация установки программного обеспечения
- 30. Как я могу сохранить порядок рефакторов с помощью программного обеспечения для рефакторинга базы данных?
Что такое «название деятельности»? какая деятельность? – Furqan
Каково название мероприятия? – Karthik
«Название деятельности» - это имя класса, унаследованного от DeviceAdminReceiver. –