Có ai có thể giúp tôi bằng mã để đặt mật khẩu để khóa màn hình không? thxTôi có thể thiết lập khóa màn hình bằng mật khẩu bằng cách nào?
Trả lời
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);**
kiểm tra trang web này http://blog.stef.be/patternlock. Trong trang web này, việc thực hiện các mô hình khóa màn hình bằng cách sử dụng javascript, html và css đã được xác định rất rõ ràng ... Toàn bộ mã có sẵn kể từ nguồn mở của nó .. Hy vọng nó wil giúp bạn
Sử dụng mã này trong ứng dụng của bạn hoạt động cho tôi:
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();
Kiểm tra điều này. Điều này làm việc cho tôi.
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>
Bạn có thể có policies.xml này hoặc trong bố trí hoặc trong thư mục xml. Chỉ những điều bạn cần phải chăm sóc là siêu dữ liệu thẻ trong Androidmanifest tệp.
<?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>
Trước Khóa màn hình bạn cần phải Enable Quản trị Permission
Sau đó, bạn sẽ có được điều này ..
Sau Enable bạn sẽ khóa màn hình .. như thế này
Liên kết tới giải pháp tiềm năng luôn được chào đón, nhưng vui lòng [thêm ngữ cảnh xung quanh liên kết] (http://meta.stackoverflow.com/a/8259/169503) để người dùng đồng nghiệp của bạn sẽ có một số ý tưởng về nó là gì và tại sao nó ở đó. Luôn trích dẫn phần có liên quan nhất của một liên kết quan trọng, trong trường hợp trang web mục tiêu không thể truy cập được hoặc sẽ vĩnh viễn ngoại tuyến. Có tính đến _barely nhiều hơn một liên kết đến một trang web bên ngoài_ là một lý do có thể là [Tại sao và làm thế nào là một số câu trả lời bị xóa?] (Http://stackoverflow.com/help/deleted-answers). –
cảm ơn XaviLópez – Sathish
Cảm ơn bạn đã đóng góp cho SO! –
Android N không hoạt động, See Here
Lưu ý: API này đã được giới hạn như của N cho quản trị viên thiết bị mà không phải là chủ sở hữu thiết bị và chủ sở hữu không profile. Bạn chỉ có thể thay đổi mật khẩu nếu hiện không có mật khẩu nào được đặt. Chủ sở hữu thiết bị và chủ sở hữu hồ sơ vẫn có thể thực hiện việc này khi người dùng được mở khóa và không có hồ sơ được quản lý.
- 1. "Màn hình khóa" có mật khẩu bảo mật tùy chỉnh
- 2. Tôi có thể tạo/phát hiện bàn phím bằng mật khẩu bằng cách nào?
- 3. lftp bằng khóa + cụm mật khẩu?
- 4. Tôi quên mật khẩu chính Glassfish3, làm cách nào tôi có thể đặt lại mật khẩu?
- 5. Bảo mật mật khẩu trong thiết lập nginx Multi-Dev
- 6. Tôi có thể chụp ảnh màn hình các trang web bằng Perl bằng cách nào?
- 7. Thiết bị bảo mật phần mềm của Firefox bảo vệ mật khẩu bằng cách nào?
- 8. Thiết lập mật khẩu cho H2
- 9. Làm cách nào để nhập mật khẩu ssh bằng bash?
- 10. Bảo vệ bằng mật khẩu Tệp Elmah.axd
- 11. Làm thế nào để sử dụng màn hình khóa mật khẩu mặc định trong ứng dụng Android của chúng tôi?
- 12. Đăng nhập bằng Facebook theo cách lập trình bằng tên người dùng/mật khẩu
- 13. Lưu mật khẩu bằng Md5
- 14. Khôi phục mật khẩu bằng mật khẩu sha1 băm
- 15. sử dụng các khóa ssh với cụm mật khẩu trên thiết lập đầu bếp vagrant +
- 16. Chụp ảnh trong khi thiết bị bị khóa bằng mật khẩu
- 17. Làm cách nào để chỉ định mật khẩu khóa bằng javax.net.ssl?
- 18. Bảo mật bằng mật khẩu .htaccess là như thế nào?
- 19. Tôi có thể học lập trình DirectShow bằng cách nào?
- 20. Vải yêu cầu mật khẩu mặc dù tôi có thể SSH bằng cách sử dụng thông tin xác thực
- 21. Trong Android, làm thế nào tôi có thể tắt màn hình một cách có lập trình?
- 22. Làm cách nào để thêm mật khẩu vào khóa riêng OpenSSH được tạo mà không có mật khẩu?
- 23. Tôi có thể bảo vệ mật khẩu bằng cách nào nhưng không sống trong khi sử dụng SVN?
- 24. Cách mật khẩu bảo vệ video trực tuyến bằng php
- 25. làm thế nào tôi có thể vạch mặt C# mật khẩu hộp và mặt nạ nó trở lại mật khẩu
- 26. Làm cách nào tôi có thể xác thực người dùng bằng bảo mật mùa xuân bằng cách sử dụng DaoAuthenticationProvider
- 27. Rails 3 Thiết lập thủ công thay đổi mật khẩu
- 28. Tôi có thể chạy máy chủ git được bảo vệ bằng mật khẩu, chỉ đọc không?
- 29. Tôi có thể nhập html bằng php bằng cách nào?
- 30. Làm thế nào để thiết lập lại keystores khi bạn không biết mật khẩu của họ?
"tên hoạt động" là gì? hoạt động nào? – Furqan
tên của hoạt động là gì? – Karthik
"tên hoạt động" là tên của lớp được kế thừa từ DeviceAdminReceiver. –