android 6.0以后设置wifi静态IP的方法 10C

网上大部分设置WIFI静态IP的方法,以前的代码我也是这样写的都没什么问题,但是在一个7.1的平板上再用到下面的代码就会报错:

WifiUtils.setIpAssignment("STATIC", wifiConfig);

 public static void setIpAssignment(String assign, WifiConfiguration wifiConf)
        throws SecurityException, IllegalArgumentException, NoSuchFieldException, IllegalAccessException {
    setEnumField(wifiConf, assign, "ipAssignment");//
}

public static void setEnumField(Object obj, String value, String name)
        throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
    Log.e("setEnumField","obj :"+obj+"111 name:"+name+"111");
    Field fields[] = obj.getClass().getDeclaredFields();
    for (int a= 0;a<fields.length;a++){
        Log.e("getFields","s :"+fields[a].getName());
    }
    Field f = obj.getClass().getDeclaredField(name);
    f.set(obj, Enum.valueOf((Class<Enum>) f.getType(), value));
}

打印结果getFields这并没有“ipAssignment”这个,但是在之前的设备上是有的,请教一下6.0以后的系统有什么变化吗?还是我写的哪里出了问题?

2

2个回答

我之前也有遇到过6.0之前的手机没问题,6.0之后的手机会报控制针的问题,后来了解到是6.0之后的系统的权限管理的问题。Android6.0以前,在开发时候不需要动态的在代码中添加权限,只需要在manifast.xml中配置我们所需要的权限即可,因为在我们安装时会有一个包含了所有我们在manifest.xml中所授予的权限的列表,只有用户同意后才可以继续安装,而Android6.0之后,我们可以直接安装,当app需要授权的时候,我们可以选择拒绝或接受,也可以在设置界查看每个app的权限,对单个权限进行授权或者解除授权。这样的权限新机制更好的保护了用户的隐私。。你可以去看一下是不是这个原因。

1
qq_20258523
qq_20258523 我看在设置界面的APP权限非常的少,应该不是这个原因
大约一年之前 回复

如果想要在Android6.0代码设置WIFI连接方式为静态IP,就得提示用户,去WiFi设置里面取消保存(或忘记、删除)该WiFi,然后用户在APP里选择WIFI,输入密码,代码连接WiFi,然后通过反射调用系统隐藏方法更改连接方式。
注意:WiFi由静态IP改为DHCP或由DHCP改为静态IP需要重启WIFI(直接在手机设置里面改连接方式,WIFI也是会断开在重新连接的),既调用以下方法:
int netId = wifiManager.addNetwork(wifiConfig);
wifiManager.disableNetwork(netId);
wifiManager.enableNetwork(netId, true);

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于Android 5.0 、6.0 、 7.0代码设置WIFI连接方式为静态IP或DHCP的方法及注意事项
注意:Android6.0以上app不具备删除,修改WiFi权限。 如果是自己APP通过代码连接的,(如果系统本来就记住了该WIFI,APP里通过代码在连接一次不算),需要权限 android:name="android.permission.OVERRIDE_WIFI_CONFIG" /> 可以删除该WiFi 和修改。 在Android6.0以上,调用以下方法,如果返回-
android 6.0修改静态ip
OOActivity是6.0修改ip的代码,其他的有3.0,4.0的,5.0的在我的资源里面找
android wifi工具类(包括静态IP设置)
整理android的wifi相关的工具类,整理成项目可运行。 包括wifi的打开、关闭、连接、切换、监听、静态IP设置、网关、DNS。
android Wifi 设置静态ip地址的方法
调用setIpWithTfiStaticIp()即可为连接好的wifi配置 静态Ip。支持Android4.0以上及以下的版本。(PS:以下的函数使用条件是:wifi是连接好的) 测试成功的   /**      * 设置静态ip地址的方法      */     private boolean setIpWithTfiStaticIp() {       WifiManager wi
android7.0获取静态IP、网关、子网掩码、DNS
/** * 获取静态IP的相关信息 * @param context * @return */ public Map&amp;amp;amp;lt;String,String&amp;amp;amp;gt; getIps(Context context){ Map&amp;amp;amp;lt;String,String&amp;amp;amp;gt; ipMaps = new HashMap&amp;amp;amp;lt;
Android6.0修改以太网IP
重启后也可以修改有关有线网的IP,网关地址等。 在这里分享出来,帮助更多人少走弯路。 不罗嗦切入正题,实现以太网的IP修改主要分为以下步骤: 一.拿到系统的Framework源码,也就是jar包 我的jar是底层开发的同事给我的,导入到项目中,导入方式可参考这个帖子: http://www.j
android wifi设置连接为静态,动态DHCP(三)
wifi设置为静态IP和动态IP方式 MSTAR 6.0验证 //获取要设置为静态IP的信息 public WifiConfiguration setwifistaticIpSettings(WifiConfiguration wifiConfiguration,String wifiip,String wifimasks, ...
Android 6.0 修改以太网的ip 掩码 网关 DNS及DHCP和静态切换
点击打开链接https://www.jianshu.com/p/0e06a8afb2a3
Android连接WiFi设置IP为静态IP
设置静态IP需要先忘记WiFi密码再重新连接,会记住是哪个APP连接WiFi public class WifiConnet { private static WifiConnet utils = null; private WifiManager wifiManager; public static int Num = 0; public static Stri...
在安卓6.0.1设置界面增加以太网静态IP配置功能的补丁
本补丁是在安卓6.0.1设置界面增加以太网静态IP配置功能,基于全志A64平台,SDK_V2.1.1安卓6.0.1 补丁名称里已经包含了路径,在源码对应路径用patch -p1 < xxx.patch即可
android wifi获取静态信息和动态信息.IP.子网掩码.getaway(二)
开发中遇到需要获取连接的wifi的一些信息,以下代码适合有自己编译的系统jar包使用,时间不多没整理有点乱,合起来看就可以。 private void setwifiinfo(){ String wifiinfoIp = &quot;&quot;;//ip String wifiinfomac = &quot;&quot;;//mac String wifiinfoDNS = &quot;&quot;...
android,wifi,静态IP,设置
android,wifi,静态IP,设置。 设置wifi连接的静态IP。
Android判断Wifi高级设置是静态IP配置方式还是DHCP配置方式
         Android如何判断Wifi高级设置是静态IP配置方式还是DHCP配置方式,偶然间发现一个小窍门,我们获取当前无线网络的DhcpInfo对象,可以观察这个对象在DHCP配置和静态IP配置方式下的输出信息,即调用DhcpInfo.toString()方法输出到控制台,其中DHCP配置方式下的输出信息为:  ipaddr 192.168.0.107 gateway 192.168....
Android 用Shell命令设置静态ip
Android 用Shell命令设置静态ip https://blog.csdn.net/qq_31939617/article/details/81530531
Android 代码设置WIFI连接方式是静态IP还是DHCP
Android代码设置WiFi连接方式(静态IP或者DHCP)5.1系统可用
Android 7.0 增加Ethernet设置(DHCP与Static ip)
Android 7.0 增加Ethernet设置(DHCP与Static ip) 静态IP设置选项有: IP 地址 子网掩码 默认网关 首选DNS服务器 备用DNS服务器 参考文章:http://blog.csdn.net/hclydao/article/details/50972932 感谢 hclydao
android 6.0 配置系统自动链接指定wifi
在system\etc\wifi下的wpa_supplicant_overlay.conf添加如下内容:network={ ssid=&quot;wifi信号名称&quot; psk=&quot;wifi密码&quot; key_mgmt=WPA-PSK}如果需要再加一组没有密码的,则这样加:network={ ssid=&quot;wifi信号名称&quot; psk=&quot;wifi密码&quot; key_mgmt=WPA-PSK}network={ ssid=&quot;无...
反射设置android6.0 以太网的打开和设置静态Ip,不用导源码包
本文章的以太网设置方法只使用于android6.0系统,纯反射设置,如果不是android6.0系统请自行查看系统源码方法以及参数,可以作为对反射机制的回顾与加深印象的学习
AndroidThings设置以太网卡静态ip
        刚跟进一个项目,树莓派搭载AndroidThings系统,使用以太网卡接入网络。因为树莓派默认是通过Dhcp动态获取地址的,而设备需要直接插入交换机,地址分配比较麻烦(其实我也不懂咋回事),然后就想着给树莓派设置静态ip。坑,就这样开始了。。。         首先想到的是去系统里找dhcp.conf配置文件,修改成静态地址。最终,没找到配置文件!         然后想着修改...
android wifi静态ip设置
android实现静态ip设置,很实用的代码,android客户端ip静态设置源码
Android shell 命令设置(获取)IP地址、网关、dns
转自 http://www.biemmeitalia.net/blog/android-network-configuration/ 通过shell命令设置(获取)IP、网关、dns信息,需要获取root权限 查看所有网络信息 C:\>adb shell root@android:/ # netcfg netcfg ip6tnl0 DOWN
android实现wifi静态IP设置
实现wifi静态IP设置,4.2以下版本都可使用,封装好,方便使用
Android/Linux通过Shell脚本动态配置IP和路由
#Function: Auto set static IP for wlan/ethernet, which dynamically assigned from dhcp,and add default gateway #Param in: default gateway that can access internet, if not enter, this value will be *.*.*.1 of wlan ip
Android 操作以太网,监听网线插拔和以太网开关,设置以太网静态IP等
Android 操作以太网的项目,提供了监听网线插拔和以太网开关,设置以太网静态IP、网关、子网掩码、dns等。
树莓派开启wifi并设置静态IP
使用命令查看树莓派的无线网卡 sudo iwlist wlan0 scan 找到自己的wifi名称 使用nano编辑wifi连接配置文件 sudo nano /etc/wpa_supplicant/wpa_supplicant.conf 添加下列代码 network={ ssid="你的wifi名称" psk="你的wifi密码" } 有几个wi
Android Ethernet以太网使用静态IP
// 使用静态IP还是DHCP private static final String ETHERNET_USE_STATIC_IP = "ethernet_use_static_ip"; // IP private static final String ETHERNET_STATIC_IP = "ethernet_static_ip"; // 网关 private static final St
树莓派3B设置静态IP连接无线WIFI
一 设置有线网卡静态IP:sudonano/etc/dhcpcd.conf在文件结尾加入以下内容,配置有线和无限网络: interface eth0 static ip_address=192.168.0.201/24 static routers=192.168.0.1 static domain_name_servers=192.168.0.1 interface wlan0 ...
Ubuntu设置静态IP不能连网的解决方法
1. 运行:sudo vi /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.36.100 #设置好静态IP netmask
Windows 设置不同 WiFi 自动获取和手动固定 IP
(KK_DDj 原创) 今天,又遇到了一个问题,不同网段得 WIFI,WiFiA 需要手动固定 IP,B 不需要手动固定 WIFI。怎么样坐到只切换 WiFi 连接,而无需去修改 IP 设置呢?解决方法见如下。 Windows 10 系统下: 1、连接需要手动固定 IP 得 WiFiA,点击【属性】 2、 填写完以上信息,保存。 当连接此 WiFi 时,就会固定此 IP ,不会去自动获取 IP...
树莓派3 设置WiFi静态ip (1)
1,第一步,设置interfaces.d文件 /etc/network/interfaces: source-directory /etc/network/interfaces.d auto lo iface lo inet loopback iface eth0 inet manual allow-hotplug wlan0 auto wlan0 iface wlan0 inet...
android代码设置Wifi静态IP地址,修复WEP加密方式的Bug
网上有些设置wifi的资料,WEP加密方式存在一些bug,进行了修复;上传一个完整的测试wep加密,静态分配ip的例子;
配置静态IP并实现网络连接
View IP address [abelethan@cdh01 ~]$ ifconfig​ Set static ip addr [root@cdh01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33​ Restart network [root@cdh01 abelethan]# service...
ubuntu无线上网静态ip配置
安装完ubuntu server版后,需要配置相关上网的设置,这里以14.04版为例说明无线上网的静态配置(有线上网配置类似)。 1. 安装wpasupplicant 在ubuntu 14.04中默认自带,利用该工具生成无线上网的psk码 2. 根据无线上网的SSID和密码生成wlan相应的配置文件 命令如下: #wpa_passphrase 要连接的SSID 密码 >
linux中tcp服务端,设置wifi连接时静态IP地址的简单方法
        我最近在学习有关tcp通信的相关内容,发现在客户端连接服务端时(linux ubuntu16.04),需要先确定服务端的IP地址,由于电脑连接时默认动态分配IP地址,不同时间连接同一wifi的IP地址可能不同,所以需要设置静态IP。        开始我参照网上的一些博客,通过修改/etc/network/interfaces和/etc/resolv.conf中的相关内容,包括IP...
树莓派3B wifi静态ip设置
运行:sudo nano /etc/dhcpcd.conf修改dhcpcd.conf文件interface wlan0static ip_address=192.168.1.102/24static routers=192.168.0.1static domain_name_servers=192.168.0.1保存退出!(nano中ctrl+x组合键表示推出  接着输入y保存退出!)重启你的树莓...
android 7.1反射调用系统接口设置静态IP地址
直接调用下面的方法,传入的参数见注释 private static InetAddress inetAddress; private static Object ipConfigurationInstance; /** * context 参数,mode参数为静动态模式,分别为STATIC ,DHCP **/ public static ...
更改静态ip导致无法连接网络
按照网上的方式: 1、改IP sudo vim /etc/network/interfaces 原本的内容: auto lo iface lo inet loopback 添加: auto eth0 iface eth0 inet static address xxx.xxx.xxx.xxx//我的ip地址 netmask xxx.xxx.xxx.xxx//子网掩码 gatew
android 以太网设置静态ip
先是查到了以下的方法,发现是设置Wi-Fi的。 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ContentResolver cr = this.getContentResolver(); tr...
修改WIFI 静态iP
android修改静态ip(支持3.x,4.x,5.x) 原创 2016年12月21日 10:44:07 950 //android 3.x,4.x修改静态ip [java] view plain copy package com.example.iptest;      import java.
Ubuntu 14.04 server配置使用无线连接静态设置IP
Ubuntu 14.04 server配置使用无线连接静态设置IP安装wpasupplicant# sudo apt-get install wpasupplicant生成无线连接配置文件ESSID:要连接WiFi的名称 PWD:无线连接密码# sudo wpa_passphrase 'ESSID' 'PWD' > /etc/wpa_supplicant/wifi.conf修改网络接口配置文件编
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 学习java以后 java培训以后出来