2016-09-10 3 views
1

Я создаю приложение режима малыша. В моем приложении деятельность называется KidModeActivity (это пусковое, чтобы предотвратить ребенок от выхода из деятельности)Android Custom Launcher

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); 

я могу выбрать свой собственные пусковой Когда в пользовательском пусковом:

  • Главная кнопка ОК, когда прессованные

  • кнопка Назад оК

  • Но я все еще могу нажать кнопку, и в последнее время увидеть мое приложение там (!!!), я могу прокрутить, чтобы закрыть мое приложение тоже

Кто-нибудь помогает? Заранее спасибо!

+0

Невозможно. Для этого вам понадобится android.permission.REMOVE_TASKS, и он предоставляется только для системных приложений. – Anupam

+0

Привет @Anupam, можете ли вы рассказать мне, как реализовать пусковую установку, как это приложение https://play.google.com/store/apps/details?id=co.mindquake.nester В этом приложении после выбора некоторых приложений для дети, когда люди нажимают кнопку «GO TO KIDMOD» Появится окно выбора пусковой установки - только в первый раз (выберите «Нестер» как «всегда») После использования приложения люди должны ничего не делать, кроме выхода и предыдущей пусковой установки (Ex: Asus default launcher) устанавливается программно В следующий раз, когда люди используют это приложение Nester, запускает пусковой механизм Nester (без запуска пусковой установки) – Liar

ответ

0

В предыдущей версии для Android было Intent.ACTION_CLOSE_SYSTEM_DIALOGS, которое вы могли запустить, чтобы проверить список последних приложений, а затем запустить это намерение, чтобы закрыть любые такие системные диалоги. Но он также закрывает диалоговые окна кнопок питания и другие системные диалоги. Также не будет работать с Android Lollipop и выше.

Таким образом, вам необходимо запустить фоновый сервис и задачу, которая всегда проверяет, работает ли верхняя активность вашего приложения или любое приложение, которое вы разрешили на своем рабочем столе. Если нет, запустите свою домашнюю деятельность i.e: KidModeActivity.

Чтобы получить верхнюю активность в Lollipop устройства вам нужно, чтобы ваше приложение, чтобы получить статус Использование и получить топ Активность в

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); 

Если ваше приложение требует поддержки предварительно леденец устройства затем получить топ активности с использованием getTasks.

Смежные вопросы