Kiosk 模式应用程序的退出按钮

Posted

技术标签:

【中文标题】Kiosk 模式应用程序的退出按钮【英文标题】:Quitbutton for Kiosk-Mode App 【发布时间】:2014-05-21 18:59:04 【问题描述】:

我正在寻找在 android 上退出 kioskmode-application 的解决方案。

Out 应用程序正在 Kiosk 模式下运行,以防止通过按返回或主页按钮意外关闭,但我们需要根据请求将其关闭。有没有人可以解决这个问题?

我们通过添加实现自助服务终端模式

AndroidManifest.xml:

<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】:

我使用这个代码:

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

也许它也适合你。

【讨论】:

以上是关于Kiosk 模式应用程序的退出按钮的主要内容,如果未能解决你的问题,请参考以下文章

Windows 10 kiosk 模式:启动桌面应用程序但无法设置音量

js浏览器退出kiosk模式最小化

在 OS X 上使用 cocos2d 捕获显示(以及 Kiosk 模式问题)?

如何调试正在运行的 Kiosk 模式 Chrome 应用程序?

在Google Chrome自助服务终端模式/视图中显示关闭选项

更新处于 KIOSK 模式的托管 Google Play 应用