2016-09-10 4 views
1

私は子供モードアプリを構築しています。 =「false」を有効:私のアプリではKidModeActivityと呼ばれる活動がAndroidカスタムランチャー

のAndroidManifest.xml

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Holo.Light"> 
    <activity android:name=".activity.MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".activity.KidModeActivity" 
     android:enabled="false" 
     android:clearTaskOnLaunch="true" 
     android:launchMode="singleTask" 
     android:stateNotNeeded="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.HOME" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 
</application> 

KidModeActivityはアンドロイドを持っている(これは、アクティビティから出るから子供を防止するためのランチャーがあります)。子供モードに入るために、私はその活動を可能にする、その後のユーザーのためのランチャーピッカーを作成

ComponentName launcherActivity = new ComponentName(this, KidModeActivity.class); 
        getPackageManager().setComponentEnabledSetting(launcherActivity, 
         PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 
       // Create launcher chooser 
       Intent selector = new Intent(Intent.ACTION_MAIN); 
       selector.addCategory(Intent.CATEGORY_HOME); 
       startActivity(selector); 

カスタムランチャーにすると私は私のカスタムランチャー を選択することができます。

  • ホームボタンが時にokです

  • 戻るボタンが

  • OKですしかし、私はまだ最近のボタンを押すと、そこに私のアプリを見ることができ押します(!!!)、スワイプしてアプリを閉じることもできます

誰でも手伝ってください。前もって感謝します!

+0

できません。あなたはそれのためにandroid.permission.REMOVE_TASKSが必要で、それはシステムアプリのためだけに与えられます。 – Anupam

+0

こんにちは@Anupam、このアプリのようなランチャーを実装する方法を教えてください。https://play.google.com/store/apps/details?id=co.mindquake.nester このアプリでは、 ランチャーチューザーが初めて表示されます(ネスターランチャーを「常に」と選択してください) アプリを使用した後、終了して前のランチャー例:Asus default launcher)がプログラムで設定されている 次回このNesterアプリを使用すると、Nesterランチャーは既に設定されています(ランチャーピッカーなし) – Liar

答えて

0

以前のアンドロイド版では、最近のアプリ引き出し一覧を確認してこのインテントを実行して、そのようなシステムダイアログを閉じるために実行できるIntent.ACTION_CLOSE_SYSTEM_DIALOGSがありました。しかし、電源ボタンのダイアログやその他のシステムダイアログも閉じます。 Android Lollipop以上では動作しません。

あなたが実行しているトップアクティビティが自分のホームアプリで許可しているアプリであるかどうかを常に確認するバックグラウンドサービスとタスクを実行する必要があります。そうでない場合は、ホームアクティビティ、つまりKidModeActivityを実行します。

アプリは、使用状況を取得し、あなたのアプリがプリロリポップデバイスのサポートを必要とする場合は、その後getTasksを使用して、トップアクティビティを取得

UsageStatsManager mUsageStatsManager = (UsageStatsManager) context.getSystemService("usagestats"); 
long time = System.currentTimeMillis(); 
// We get usage stats for the last 40 seconds 
List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 40, time); 

トップアクティビティを取得できるようにする必要がありロリポップデバイスのトップアクティビティを取得します。

関連する問題