Android 应用安装添加密码输入弹窗

基于RK Android6.0-MID代码
packages/apps/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
为防止之后遗忘,记录一下
安装apk时会弹出输入弹窗,输入内容正确,才可以点击安装按钮,输入错误安装应用弹窗消失

先引用需要用到的类

import android.widget.EditText;
import android.app.AlertDialog;
import android.view.Display;
import android.view.WindowManager;

在startInstallConfirm方法内添加如下代码

//cyh add start
          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();
                        } 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/3,screenheight/4);
           }catch(NullPointerException e){
                   e.printStackTrace();
           }
        //cyh add end 
        TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);
        tabHost.setup();
        ........
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,883评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,150评论 2 59
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,792评论 0 17
  • 熊子妈妈阅读 260评论 6 16
  • M小姐和J先生认识的一年多,对于M来说是成长是依赖是坚强是安全感…… 一个礼拜了 J没有发过一句话给M 到底是真的...
    MeiMeiLin阅读 159评论 0 0