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

立即知道哪些應用程序已打開,您需要編寫第二步的代碼 –

相關問題