Android系统开发——WiFi Hotspot限速2M每秒

iptables的应用学习:https://blog.csdn.net/xiaokeweng/article/month/2015/09
去年定制化了一个wifi热点限速2M/s的功能,接下来把解决方案写下来。
iptables是Linux系统的IP信息包过滤工具,实际就是一个Linux命令,通过这个命令,可以对整个系统发出去的包,接收到的包,以及转发的包进行拦截、修改、拒绝等操作。刚好Android也是基于Linux内核的系统,也集成了iptables,一些android网络相关重要功能都是通过iptables实现。
android网络相关的重要功能在NetworkManagementService.java中实现,对iptables命令的执行可以在NetworkManagementService.java中操作,避免报GreenNetworkService: stderr: [-] set uid permission denied: Operation not permitted错误。
回归正题,WiFi Hotspot限速问题也是用到iptables命令,但我们的frameworks已经提供了接口,只需要调用下面接口就行。
INetworkManagementService mNetworkService=INetworkManagementService.Stub.asInterface(
ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE));
long limit=210241024L;
int rxBytes = (int) (limit * 8 * 2) / (3 * 1024);
int txBytes = (int) (limit * 8) / (3 * 1024);
mNetworkService.setInterfaceThrottle(“ap0”,rxBytes,txBytes);

Android开发中,创建WiFi热点并设置为5G频段通常需要通过`WifiManager` API以及`BroadcastReceiver`来实现。以下是基本步骤: 1. **获取权限**: 首先,你需要在AndroidManifest.xml文件中添加以下权限: ```xml <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ``` 2. **检查设备支持**: 使用`getSupportedFeatures()`检查设备是否支持5GHz频段。 3. **开启热点**: 创建一个`WifiConfiguration`实例,指定名称、密码和其他配置,并将其频率设为`WIFI_FREQUENCY_5GHZ`(例如 `WIFI frequency IEEE 802.11ac` 或 `2412` 对应于5GHz): ```java WifiConfiguration config = new WifiConfiguration(); config.SSID = "Your Hotspot Name"; config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); config.channel = 5; ``` 然后使用`setFrequency(channel)`设置频道。 4. **添加热点配置**: 将配置添加到热点服务列表中: ```java WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); int netId = wifiManager.addNetwork(config); wifiManager.enableNetwork(netId, true); ``` 5. **设置为默认热点**: 如果你想让这个热点成为默认的,可以调用`setDefaultNetwork()`。 6. **启动热点**: 调用`startScan()`开始扫描,然后`connect()`连接热点。 7. **监控状态**: 为了监听热点的状态变化,你可以创建一个`BroadcastReceiver`,注册接收`ACTION_WIFI_AP_CHANGED`广播。 注意:这只是一个基础示例,实际操作可能会因API版本和兼容性差异而有所不同。在实际应用中,你可能还需要处理异常情况和用户交互。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值