允许用户访问wifi设置而不给予自由统治

问题描述 投票:0回答:5

我们正在一款安装在客户车辆上的三星平板电脑上开发一款锁定的“信息亭式”Android应用程序。我们希望能够允许客户编辑他们的wifi设置,而无需让他们访问其他设置应用(例如启动器,帐户等)

我们已经能够启动Wifi设置活动,但它允许用户进入其他区域。

我不确定是否可以创建一个用于连接到wifi的自定义界面,但即使有可能,这似乎很脆弱,而且很多工作都非常简单。

有没有办法解决这个问题?

android android-activity kiosk-mode
5个回答
1
投票

我将创建一个设备策略控制器应用程序,该应用程序使用Android Enterprise(Android for Work)API在设备上作为设备所有者进行配置。 https://developers.google.com/android/work/dpc/build-dpc

作为设备所有者,您可以将应用程序设置为锁定任务模式,该模式通常用于自助服务终端。 https://developer.android.com/work/cosu.html

然后,您可以设置用户限制: addUserRestriction api user restrictions list 用户限制不包括设置应用程序中的所有内容,但覆盖范围非常好。

然后,我将使用来自Google安装向导欢迎屏幕的NFC或QR代码阅读器进行配置。 https://github.com/googlesamples/android-NfcProvisioning

您可能还想查看已存在的现有开源EMM / MDM实现,例如WSO2。

其他参考: How to enable task locking in Android 5.0 production devices How to make sure there is only one app


0
投票

试试LineAgeOS

https://lineageos.org/

您的需求需要访问操作系统级别,这样您就可以在释放手机本身之前访问和自定义WIFI设置


0
投票

你能这样试试吗?

WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
                if (wifiManager.isWifiEnabled()) {
                    wifiManager.setWifiEnabled(false);
                    Tools_WiFi.setImageResource(R.drawable.tool_wifi_off);
                } else {
                    wifiManager.setWifiEnabled(true);
                    Tools_WiFi.setImageResource(R.drawable.tool_wifi_on);
                }

0
投票

你可以试试这个:

startActivityForResult(new Intent(Settings.ACTION_WIFI_SETTINGS), 0);

希望它能帮到你。


0
投票

我还在研究Kiosk Type应用程序,我们必须为Change wifi和Display Settings提供选项所以我们在按钮上使用这些命令点击Wifi和显示设置

btnWifiSetting.setOnClickListener {

            startActivityForResult( Intent(android.provider.Settings.ACTION_WIFI_SETTINGS), 0);
        }

并用于显示设置

btnDisplay.setOnClickListener {
            startActivityForResult(Intent(android.provider.Settings.ACTION_DISPLAY_SETTINGS),0)
        }

您还可以在此处查看可用命令的完整列表

https://ourcodeworld.com/articles/read/318/how-to-open-android-settings-programmatically-with-java

© www.soinside.com 2019 - 2024. All rights reserved.