1

我必须开发一款适用于Android的应用锁定器,用户可以阻止应用,其他用户无法访问这些应用时无需访问密钥。如何在android中制作应用程序锁定应用程序?

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

请给我一些建议。

+0

欢迎来到SO。这不是如何工作。 [请参阅本文](http://stackoverflow.com/tour) – Aks4125

回答

12

这不是堆栈溢出如何工作。即使没有尝试任何东西,你也不能问完整的解决方案。

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

  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)); 
    } 
    
  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 
        } 
        } 
    
  3. 现在检查当前的应用程序出现在BlockedAppsList,如果有,则可以显示与块消息的任何画面。

祝你好运!

+0

总是返回com.android.launcher2.Launcher类名称 – Vishnu

+0

当我点击whatsup应用程序时,它应该返回whatsup包名称,但不是现在。请指导我 – Vishnu

+0

立即知道哪些应用程序已打开,您需要编写第二步的代码 –