如何在 Android 上以编程方式启用/禁用热点或网络共享模式?

问题描述

我在 Android 的网站上看到很多关于 local Only Hotspot

但是,我需要从后台服务以编程方式管理蜂窝热点,就像我可以从下拉菜单中手动执行一样。

这曾经是这样做的:

method = wifiManager.getClass().getDeclaredMethod("setWifiApEnabled",WifiConfiguration.class,Boolean.TYPE);
method.invoke(wifiManager,wifiConfiguration,activated);

但是此功能已被弃用。

我的无线服务提供商 (AT&T) 试图根据连接的设备和方式向我收取不同的费用。网络应该与设备无关,只需将我的数据包传输到目的地。我希望这无关紧要,但我担心我们会失去对设备的控制。

Android 真的不提供用于管理热点的简单 API 调用吗?

解决方法

如果使用 Android 版本 >= 11

您可以使用 TetheringManager#startTethering 代码 here 启动热点。这是官方文档中关于使用情况的 example

类似地,有一个 TetheringManager#stopTethering 方法,代码为 here。这将停止热点。

如果使用 Android 版本

ConnectivityManager#startTethering 可与代码详细信息 here 一起使用。同样,还有一个 ConnectivityManager#stopTethering 方法,代码为 here