2014-04-08 4 views
1

Android에서 kioskmode 애플리케이션을 종료하기위한 솔루션을 찾고 있습니다.키오스크 모드 앱 종료 버튼

외부 응용 프로그램이 Kioskmode에서 실행 중이므로 뒤로 또는 홈 버튼을 눌러 긴급 종료를 방지하지만 요청에 따라 종료해야합니다. 아무도 그것에 대한 해결책이 있습니까?

우리는

의 AndroidManifest.xml을 추가하여 kioskmode을 implementet :

public void getDefaultLauncher() 
{ 
    final Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 

    PackageManager pm = getPackageManager(); 
    final List<ResolveInfo> list = pm.queryIntentActivities(intent, 0); 
    pm.clearPackagePreferredActivities(getApplicationContext().getPackageName()); 

    for(ResolveInfo ri : list) 
    { 
     if(!ri.activityInfo.packageName.equals(getApplicationContext().getPackageName())) 
     { 
      startSpecificActivity(ri); 
      return; 
     } 
    } 
} 

private void startSpecificActivity(ResolveInfo launchable) 
{ 
    ActivityInfo activity=launchable.activityInfo; 
    ComponentName name=new ComponentName(activity.applicationInfo.packageName, activity.name); 
    Intent i=new Intent(Intent.ACTION_MAIN); 
    i.addCategory(Intent.CATEGORY_LAUNCHER); 
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
    i.setComponent(name); 
    startActivity(i); 
} 

어쩌면 그것뿐만 아니라 당신을 위해 작동 :

<uses-permission android:name="android.permission.REORDER_TASKS"/> 

[...]android:theme="@android:style/Theme.NoTitleBar">[...] 

<category android:name="android.intent.category.HOME" /> 
<category android:name="android.intent.category.LAUNCHER" /> 
<category android:name="android.intent.category.DEFAULT"/> 

답변

1

이 코드를 사용합니다.