PackageInstallerActivity.java设置密码解锁安装apk,重启后有效

来源:互联网 发布:dnf破极兵刃数据2017 编辑:程序博客网 时间:2024/05/16 20:29

if(SystemProperties.getInt("persist.sys.isceclink",0)==0)
{
        initiateInstall();
        }else {
        execute();
        }


//更多代码加入QQ群:172660439


private void execute() {

    try {
AlertDialog.Builder builder = new Builder(this);
builder.setTitle("Please enter a password to unlock the installation"); // 设置对话框标题
builder.setIcon(android.R.drawable.btn_star); // 设置对话框标题前的图标
edit = new EditText(this);
edit.setSingleLine(true);
edit.setFilters(new InputFilter[] { new InputFilter.LengthFilter(8) });// 最大输入长度
builder.setView(edit);
edit.setTransformationMethod(PasswordTransformationMethod.getInstance()); // 设置为密码输入框

builder.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
try {
mm = Integer.parseInt(edit.getText().toString().trim());
} catch (Exception e) {
}
if (mm == password) {
initiateInstall();
}else  {
Toast.makeText(PackageInstallerActivity.this, "Password error", Toast.LENGTH_SHORT).show();
finish();
}
}


});


builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(PackageInstallerActivity.this, "After the cancellation can not be installed apk", Toast.LENGTH_SHORT).show();
finish();
}
});


builder.setCancelable(true); // 设置按钮是否可以按返回键取消,false则不可以取消
AlertDialog dialog = builder.create(); // 创建对话框
dialog.setCanceledOnTouchOutside(true); // 设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
dialog.show();
} catch (Exception e) {
e.printStackTrace();
}

}


/** Get the ApplicationInfo for the calling package, if available */
    private ApplicationInfo getSourceInfo() {
        String callingPackage = getCallingPackage();
        if (callingPackage != null) {
            try {
                return mPm.getApplicationInfo(callingPackage, 0);
            } catch (NameNotFoundException ex) {
                // ignore
            }
        }
        return null;
    }
0 0