如何在Android中制作应用程序锁定应用程序?

Vis*_*hnu 5 service android broadcastreceiver data-access-app-block applocker

我必须为Android开发一个应用程序锁定器,用户可以阻止应用程序,而其他用户无法使用访问密钥访问这些应用程序.

我已经安装了一个应用程序,但我不知道如何锁定这个应用程序.

请给我一些建议.

The*_*Bat 22

这不是堆栈溢出的工作原理.你甚至不用尝试任何东西就无法提出完整的解决方案.

对于应用程序的最基本版本,您需要执行三个功能.

  1. 获取设备上所有已安装应用的列表,并在带有复选框的ListView中显示它们.如果用户检查任何应用程序,请将应用程序添加到其他列表中,例如BlockedAppsList(将是用户想要阻止的应用程序列表).您可以使用以下代码安装所有应用程序:

    final PackageManager pm = getPackageManager();
    //get a list of installed apps.
    List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
    
    for (ApplicationInfo packageInfo : packages) {
    Log.d(TAG, "Installed package :" + packageInfo.packageName);
    Log.d(TAG, "Source dir : " + packageInfo.sourceDir);
    Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName)); 
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 检查哪个是当前打开的应用程序.您可以使用以下代码进行检查:

    ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
    List l = am.getRecentTasks(1, ActivityManager.RECENT_WITH_EXCLUDED);
    Iterator i = l.iterator();
    PackageManager pm = this.getPackageManager();
    while (i.hasNext()) {
    ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo)(i.next());
    try {
    CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(
    info.processName, PackageManager.GET_META_DATA));
    Log.w("LABEL", c.toString());
    } catch (Exception e) {
    // Name Not FOund Exception
        }
       }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 现在检查当前应用程序是否存在于BlockedAppsList中,如果存在,则可以显示带有阻止消息的任何屏幕.

祝好运!