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

에 대한 실행 선택기를 생성하는 활동을 가능하게 할 것이다 :

  • 홈 버튼이 때 괜찮습니다 돌아 가기 버튼을 확인

  • 을 누를

  • 하지만 난 여전히 최근의 버튼을 누르면이 내 응용 프로그램을 볼 수 있습니다 (!!!) 내 앱을 닫으려면 스 와이프 할 수 있습니다

누구든지 도움이 되나요? 미리 감사드립니다!

+0

불가능합니다. 이를 위해 android.permission.REMOVE_TASKS가 필요하며 시스템 앱에만 부여됩니다. – Anupam

+0

안녕하세요 @Anupam,이 앱과 같은 실행기를 구현하는 방법을 알려주시겠습니까? https://play.google.com/store/apps/details?id=co.mindquake.nester 해당 앱에서 사람들이 "KIDMOD로 이동"버튼을 클릭하면 처음으로 런처 선택기가 나타납니다. Nester 실행기를 "항상"으로 선택하십시오. 앱을 사용한 후, 사람들은 종료와 이전 실행기를 수행해야합니다 (예 : Asus default launcher)가 프로그래밍 방식으로 설정되었습니다. 다음 번 사람들이이 Nester 앱을 사용할 때 Nester 런처가 이미 설정되어 있습니다 (런처 선택 도구 없음) – Liar

답변

0

이전의 Android 버전에서 최근 앱 서랍 목록을 확인하고이 시스템 대화 상자를 닫으려면이 인 텐트를 실행하기 위해 실행할 수있는 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); 

을 이용 현황을 얻고 얻을 수 있도록 할 필요가 롤리팝 장치의 정상 활동을 얻으려면.