客户反应RK3568-11的盒子连接USB无线投屏设备,通过RK3568的热点通信,需要设置p2p的IP为固定IP
App创建WiFi p2p组 ,mWifiP2pManager.createGroup 或者打开WLAN热点就会分配p2p0 IP地址。
wlan0 Link encap:Ethernet HWaddr 80:e4:da:00:11:32 Driver rtl8852bs
inet addr:192.168.0.109 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::7e03:d509:2d8:b5ee/64 Scope: Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2862 errors:0 dropped:2 overruns:0 frame:0
TX packets:666 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1116038 TX bytes:148511
p2p0 Link encap:Ethernet HWaddr f2:06:88:66:9c:17 Driver rtl8852bs
inet addr:192.168.188.243 Bcast:192.168.188.255 Mask:255.255.255.0
inet6 addr: fe80::f006:88ff:fe66:9c17/64 Scope: Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:54 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0
方法1 使用命令可以临时修改IP地址
bash
adb shell
su
ip addr flush dev p2p0
ip addr add 192.168.49.100/24 dev p2p0
ifconfig
p2p0 Link encap:Ethernet HWaddr f2:06:88:66:9c:17 Driver rtl8852bs
inet addr:192.168.49.100 Bcast:0.0.0.0 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:56 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0
- 先
ip addr flush dev p2p0清空 - 确认网段不与 wlan0/eth0 冲突
方法2 App 代码执行
java
// 示例:设置 p2p0 静态 IP
public void setP2pStaticIp(String iface, String ip, String prefix) {
try {
String cmd1 = "ip addr flush dev " + iface;
String cmd2 = "ip addr add " + ip + "/" + prefix + " dev " + iface;
// 需要 su
Process p1 = Runtime.getRuntime().exec(new String[]{"su", "-c", cmd1});
p1.waitFor();
Process p2 = Runtime.getRuntime().exec(new String[]{"su", "-c", cmd2});
p2.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
// 调用示例
setP2pStaticIp("p2p0", "192.168.49.100", "24");
方法3 开机自动设置,执行脚本
java
/data/local/p2p_static_ip.sh
#!/system/bin/sh
# 等待 P2P 网卡 up
sleep 3
ip addr flush dev p2p0
ip addr add 192.168.49.100/24 dev p2p0
ip route add 192.168.49.0/24 dev p2p0
service p2p_static_ip /data/local/p2p_static_ip.sh
class main
user root
group root
oneshot
使用命令设置p2p0的静态IP后,虽然可以生效,但是手机连接这个WIFI热点后无法上网。
看来还需要继续研究一下,p2p0分配IP的方法。