6

ユーザーがアプリをブロックでき、他のユーザーがアクセスキーなしでこれらのアプリにアクセスできないAndroid用のアプリロッカーを開発する必要があります。

アプリをインストールしましたが、このアプリをロックする方法がわかりません。

何か提案してください。

4

2 に答える 2

30

これは、スタック オーバーフローのしくみではありません。何も試さずに完全な解決策を求めることはできません。

アプリの最も基本的なバージョンでは、3 つの機能を実行する必要があります。

  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 に存在するかどうかを確認します。存在する場合は、ブロック メッセージを含む任意の画面を表示できます。

幸運を!

于 2016-03-28T13:25:01.247 に答える