Rk3568 Andorid 11 新增输入正确密码才能安装应用的功能

Rk3568 Andorid 11 新增输入正确密码才能安装应用的功能

问题描述

在进行RK3566 Android 的定制中 遇到一个问题,客户需要管理用户安装app,输入正确密码才能安装应用的功能

最终修改的文件是在

frameworks\base\packages\PackageInstaller\src\com\android\packageinstaller

## 

修改方案如下

  • diff --git a/frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java b/frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
    index e3d6c909a6..7ee9d0ccd6 100755
    --- a/frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
    +++ b/frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
    @@ -48,8 +48,16 @@ import android.view.View;
     import android.widget.Button;
     
     import com.android.internal.app.AlertActivity;
    +import android.widget.EditText;
    +
    +import android.app.AlertDialog;
    +
    +import android.view.Display;
    +
    +import android.view.WindowManager;
     
     import java.io.File;
    +import android.widget.TabHost;
     
     /**
      * This activity is launched when a new application is installed via side loading
    @@ -118,8 +126,34 @@ public class PackageInstallerActivity extends AlertActivity {
         private boolean mEnableOk = false;
     
         private void startInstallConfirm() {
    +  //add by ltj   add installApppassword
    +
    +try {
    +
    +    String packageName = mPkgInfo.packageName;
    +    
    +    final EditText et = new EditText(PackageInstallerActivity.this);
    +    
    +    AlertDialog.Builder builder = new AlertDialog.Builder(PackageInstallerActivity.this);
    +    
    +    builder.setTitle("   请输入安装应用密码   ")
    +    
    +    .setIcon(android.R.drawable.sym_def_app_icon)
    +    
    +    .setView(et)
    +    
    +    .setPositiveButton("确定", new DialogInterface.OnClickListener() {
    +    
    +    @Override
    +    
    +    public void onClick(DialogInterface dialogInterface, int i) {
    +    
    +    if (et.getText().toString().equals("12345678")) {
    +    
    +    //按下确定键后的事件
    +    
    +    android.widget.Toast.makeText(PackageInstallerActivity.this, "密码正确", android.widget.Toast.LENGTH_LONG).show();
    +    View viewToEnable;
             if (mAppInfo != null) {
                 viewToEnable = (mAppInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0
                         ? requireViewById(R.id.install_confirm_question_update_system)
    @@ -134,6 +168,75 @@ public class PackageInstallerActivity extends AlertActivity {
             mEnableOk = true;
             mOk.setEnabled(true);
             mOk.setFilterTouchesWhenObscured(true);
    +    
    +    } else {
    +    
    +    android.widget.Toast.makeText(PackageInstallerActivity.this,"密码错误", android.widget.Toast.LENGTH_LONG).show();
    +    
    +    finish();
    +    
    +    return;
    +    
    +    }
    +    
    +    }
    +    
    +    }).setNegativeButton("取消", new DialogInterface.OnClickListener() {
    +    
    +    @Override
    +    
    +    public void onClick(DialogInterface dialogInterface, int i) {
    +    
    +    finish();
    +    return;
    +    
    +    }
    +    
    +    });
    +    
    +    final AlertDialog dialog = builder.create();
    +    
    +    //获取屏幕的长宽
    +    
    +    WindowManager window=getWindowManager();
    +    
    +    Display display=window.getDefaultDisplay();
    +    
    +    int screenheight=display.getHeight();
    +    
    +    int screenWidth=display.getWidth();
    +    
    +    dialog.setCancelable(false);
    +    
    +    dialog.show();
    +    
    +    //设置弹出框的长宽
    +    
    +    dialog.getWindow().setLayout(screenWidth-100,screenheight/10);
    +    
    +    }catch(NullPointerException e){
    +    
    +    e.printStackTrace();
    +    
    +    }
    +    
    +    //ltj add end  add installApppassword
    
    
    -   viewToEnable.setVisibility(View.VISIBLE);
    -
    -         mEnableOk = true;
    -      	  mOk.setEnabled(true);
    -         mOk.setFilterTouchesWhenObscured(true);
    -     View viewToEnable;
    -        if (mAppInfo != null) {
    -            viewToEnable = (mAppInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0
    -                    ? requireViewById(R.id.install_confirm_question_update_system)
    -                     : requireViewById(R.id.install_confirm_question_update);
    -        } else {
    -            // This is a new application with no permissions.
    -            viewToEnable = requireViewById(R.id.install_confirm_question);
    -        }
    
    +    //     viewToEnable.setVisibility(View.VISIBLE);
    +
    +    //     mEnableOk = true;
    +    //     mOk.setEnabled(true);
    +    //     mOk.setFilterTouchesWhenObscured(true);
    +    // View viewToEnable;
    +    //     if (mAppInfo != null) {
    +    //         viewToEnable = (mAppInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0
    +    //                 ? requireViewById(R.id.install_confirm_question_update_system)
    +    //                 : requireViewById(R.id.install_confirm_question_update);
    +    //     } else {
    +    //         // This is a new application with no permissions.
    +    //         viewToEnable = requireViewById(R.id.install_confirm_question);
    +    //     }
    +
    +    //     viewToEnable.setVisibility(View.VISIBLE);
    +
    +    //     mEnableOk = true;
    +    //     mOk.setEnabled(true);
    +    //     mOk.setFilterTouchesWhenObscured(true);
         }
    

最终效果

在这里插入图片描述

参考链接

https://blog.csdn.net/weixin_39861823/article/details/117487642

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值