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个回答

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

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);

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android,wifi,静态IP,设置
android,wifi,静态IP,设置。 设置wifi连接的静态IP。
android wifi静态ip设置
android实现静态ip设置,很实用的代码,android客户端ip静态设置源码
wifi设置静态IP
wifi设置静态IP时 设置错误的静态IP,能连接Ap,也能上网 设置错误的网关能连接上Ap,但不能上网 设置错误的网络掩码,不能连接AP 设置错误的DNS,能连接AP,但不能上网...
android实现wifi静态IP设置
实现wifi静态IP设置,4.2以下版本都可使用,封装好,方便使用
程序设置android的wifi静态ip
设置wifi静态ip,gateway,dns等。对于其它朋友说的3.0及4.0以上系统无法设置的良好解决方案。本人封装了一个类库,你可以在程序中直接调用。我的开发环境是android4.0,完全可用!
android wifi工具类(包括静态IP设置)
整理android的wifi相关的工具类,整理成项目可运行。 包括wifi的打开、关闭、连接、切换、监听、静态IP设置、网关、DNS。
WIFI如何设置静态IP
目前使用动态IP能连接上无线路由并上网,请问如何设置静态IP,是用WINCE的API还是只要把IP写入到注册表指定位置,系统自己处理?如果用API,需要哪些API?如果写注册表,具体写到哪,写哪些数据?rn
android 6.0修改静态ip
OOActivity是6.0修改ip的代码,其他的有3.0,4.0的,5.0的在我的资源里面找
Android静态IP设置
package com.wanin.tutor.model.IpSetting; import android.content.Context; import android.util.Log; import com.wanin.tutor.utils.NativeTaskUtil; import java.util.List; /**  * @auth
android设置静态IP
适应3.0一下,和3.0以上静态Ip设置。
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...
树莓派开启wifi并设置静态IP
使用命令查看树莓派的无线网卡 sudo iwlist wlan0 scan 找到自己的wifi名称 使用nano编辑wifi连接配置文件 sudo nano /etc/wpa_supplicant/wpa_supplicant.conf 添加下列代码 network={ ssid="你的wifi名称" psk="你的wifi密码" } 有几个wi
如何设置安卓手机WIFI的静态IP地址
如何设置安卓手机WIFI的静态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...
设置静态ip的方法--开发板
错误: 临时设置开发板的ip地址命令如下:ifconfig eth0 192.168.1.100        重启开发板后,ip地址恢复为默认值原因: 开发板需要设置静态ip处理方法:1、查找相应目录ls /etc/network/ 2、编辑interfacesvi /etc/network/interfacesiface eth0 inet dhcp更改成ifa...
LINUX下设置静态IP的方法
注意:所有操作均使用root用户 进入系统图形界面之后 1.桌面右键:open terminal 2.找到并编辑网卡文件 vi /etc/sysconfig/network-scripts/ifcfg-eth0 按i键进入输入模式 DEVICE=eth0 (网卡名称,不做修改) BOOTPROTO=static (IP获取方式:静态) IPADDR=10.32.10.39
Centos7 静态IP设置方法
这里区分两种网络环境① 公司或者企业网络环境,非家庭网络环境下② 家庭网络,个人路由器(同公司或者企业网络差不太多)1. 在公司或者企业网络环境下第一步:设置虚拟机网络为NET模式,不要使用桥接模式,不然虚拟机内的系统无法访问互联网第二步:查看网络设置① 使用还原默认设置之后查看子网IP② 启动Centos系统,使用 ifconfig 命令查看网络情况这里的网卡为ens33,记住这个网卡名称后使用...
Linux 设置静态IP方法
1前言 2解决办法 1 首先查询本机网卡名称 2 修改配置文件 3重新启动Linux1前言使用想要通过xshell等软件通过Windows访问Linux主机时,需要给Linux设置一个固定的IP,以避免每次链接时需要查看IP,更改要连接的Linux主机IP地址。2解决办法设置IP通过修改配置文件/etc/network/interfaces来完成,如果是使用VMware等软件应该将网络设置为桥接模式
CentOs 设置静态IP 方法
http://www.cnblogs.com/coacaio/archive/2011/12/12/2284715.html 在做项目时由于公司局域网采用自动获取IP的方式,导到每次服务器重启主机IP都会变化。为了解决这个问题,我参考了http://blog.sina.com.cn/s/blog_537977e50100qhb5.html的文章然后根据自己的情况设置静态IP解决了这个问题,处理...
开发板设置静态ip的方法
开发板设置静态ip和linux设置静态ip是一个问题。 1. 更改网络接口配合文件 具体位置在 /etc/network/interfaces 在最后,或者找到auto eth0,我们将 auto eth0 iface eth0 inet dhcp更改成iface eth0 inet static         address 192.168.1.xx         netmas
android 以太网设置静态ip
先是查到了以下的方法,发现是设置Wi-Fi的。 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ContentResolver cr = this.getContentResolver(); tr...
android 4.0下设置静态ip
rnrnrn设置静态ip使用如下语句:rnrn setIpAssignment("STATIC", wifiConf); rnrn setIpAddress(InetAddress.getByName("192.168.1.102"), 24, wifiConf);rnrnsetGateway(InetAddress.getByName("192.168.1.1"), wifiConf);rnrnsetDNS(InetAddress.getByName("192.168.1.1"), wifiConf);rnrn wifiManager.updateNetwork(wifiConf); //apply the settingrnrn出现如下错误rnjava.lang.SecurityException: WifiService: Neither user 10044 nor current process has android.permission.CHANGE_WIFI_STATE.rn已使用了权限rnrn rnrnrnrnrn在网上查说加入 android:sharedUserId="android.uid.system",我的程序加了这句话直接运行不了了rn
WIFI静态IP的作用是什么?
WIFI设置静态IP有什么用?
ubuntu14.04如何设置静态IP的方法
&amp;#13; 第一步:&amp;#13; 配置静态IP地址:&amp;#13; 打开/etc/network/interfaces文件,内容为&amp;#13; &amp;#13; auto lo&amp;#13; iface lo inet loopback&amp;#13; &amp;#13; auto eth0&amp;#13; iface eth0 inet dhcp&amp;#13; &amp;#13; &amp;#13;     &amp;#13; 以上表示默...
android获取wifi外网ip的方法
本文我们分享几个android开发中获取wifi外网ip的实例,这段代码是非常实例的代码片断,基乎每个项目都需要用到,值得收藏。 android获取wifi外网ip的方法 // 获取外网IP   public static String GetNetIp() {       URL infoUrl = null;       InputStream inStream = null;
Centos中设置静态IP地址的方法
想用SSH远程登录Centos,则必须知道Centos的IP地址,因此就需要设置一下静态IP地址。参考了http://www.cnblogs.com/coacaio/archive/2011/12/12/2284715.html的文章,进行了总结。 1、设置静态IP地址,修改/etc/sysconfig/network-scripts/ifcfg-eth0的内容: DEVICE=eth0 #网卡
Centos 6.4 设置静态IP 方法
IP静态地址设置: [root@master /]# vi /etc/sysconfig/network-scripts/ifcfg-eth0      DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.2   ...
centos7虚拟机桥接模式静态ip设置方法
centos7虚拟机桥接模式静态ip设置方法 桥接模式,选择本地网卡模式 本地网卡参数:192.168.10.99 gateway:192.168.10.254 master主机 /etc/sysconfig/network-scripts/ifcfg-ens33文件内容如下: TYPE=&quot;Ethernet&quot; BOOTPROTO=&quot;static&quot; #DEFROUTE=&quot;yes&quot; I...
VMware虚拟机linux设置静态IP方法
设置CentOS的静态IP 涉及到三个配置文件,分别是:/etc/sysconfig/network/etc/sysconfig/network-scripts/ifcfg-eth0/etc/resolv.conf 1.首先修改/etc/sysconfig/network: NETWORKING=yes HOSTNAME=master GATEWAY=192.168.126.135 2...
Centos7(Linux)设置静态IP的方法
目录 1.VM 网络设配器 设置 2.编辑NAT模式 3.修改文件 4.修改配置 5.让静态IP生效 6.使用本地DOS命令测试 1.VM 网络设配器 设置 2.编辑NAT模式 编辑子网Ip 例192.168.211.0 NAT设置编辑网关 例192.168.211.2 添加虚拟机ip 3.修改文件 linux网络配置...
Centos7(LInux)设置静态IP的方法
这里以VM CentOS 7为例设置静态IP 1、VM 网络设配器 设置 2、linux网络配置的配置文件在/etc/sysconfig/network-scripts/下,文件名前缀为ifcfg-后面跟的就是网卡的名称,可以通过双TAB键查看然后编辑,也可以使用ifconfig查看,也可以使用命令: ls /etc/sysconfig/network-scripts/ifcfg-* 列...
Linux桥接模式下设置静态IP的方法
之前一直使用NAT模式,测试时android端远程访问虚拟机的mysql时发现无法连接,但是访问同学拷过来的虚拟机Linux的mysql却成功了,想了下原因是他设置的桥接模式。 关于两种模式的区别,网上可以搜到一大堆文章,通俗点讲,NAT模式下,虚拟机从属于主机,也就是访问外部网络必须通过主机来访问,因此虚拟机的IP只有主机才能识别。而桥接模式下,虚拟机和主机是平行关系,共享一张
VMware中centos7静态IP设置方法
虚拟机装过很多次,每次都会忘掉静态IP设置过程,记录下,方便以后换新机器参考。 1.首先,安装好系统之后,到vmware的工具栏找到 编辑--&amp;gt;虚拟网络编辑器: 2.编辑/etc/sysconfig/network 3.编辑/etc/sysconfig/network-scripts/ifcfg-ens33 4.重启网络 service network restart...
WIFI连接不上,设置静态IP的方法
WIFI连接不上,设置静态IP的方法.tx
Android 6.0 打开WIFI 热点问题
6.0手机,开启WiFi热点报错InvocationTargetException。rnrn把targetSdkVersion 改成22 可以打开 23不行rnrn rn rn rn rn rn rn rn rn权限都加了,而且位置权限也给了,GPS也打开了,23还是不行。rnrn打开WIFI代码 targetSdkVersion 22 是可以运行的,我就想知道targetSdkVersion 23要怎么样才能运行呢rn[code=java] /**rn * 设置热点名称及密码,并创建热点rn * @param mSSIDrn * @param mPasswdrn */rn private void stratWifiAp(String mSSID, String mPasswd) rn Method method1 = null;rn try rn //通过反射机制打开热点rn method1 = wifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);rn WifiConfiguration netConfig = new WifiConfiguration();rn netConfig.SSID = mSSID;rn netConfig.preSharedKey = mPasswd;rn netConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);rn netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);rn netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);rn netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);rn netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);rn netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);rn netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);rn netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);rn method1.invoke(wifiManager, netConfig, true);rnrn catch (IllegalArgumentException e) rn e.printStackTrace();rn catch (IllegalAccessException e) rn e.printStackTrace();rn catch (InvocationTargetException e) rn e.printStackTrace();rn catch (SecurityException e) rn e.printStackTrace();rn catch (NoSuchMethodException e) rn e.printStackTrace();rn rn [/code]
Centos7 静态IP设置
1、编辑 ifcfg-eth0 文件 [root@master ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 2、修改如下内容 BOOTPROTO="static" #dhcp改为static ONBOOT="yes" #开机启用本配置 IPADDR=172.16.96.201 #静态IP GATEWAY=
设置mini2440的静态IP
设置Linux修改静态ip
CentOS6.5下设置静态IP
在系统配置环境下往往需要静态IP
静态IP和hostname的设置
静态IP的配置 将 /etc/udev/rules.d/70-persistent-net.rules 的eth0注释掉,将eth1改为eth0 2.配置 vi /etc/sysconfig/network-scripts/ifcfg-eth0 3.重置网络 service network restart(或者重启reboot) 4.ifconfig 修改主机名 vi etc/syscon...
Debian9 设置静态IP
1. 查看虚拟机上本机ipcmd→ipconfig2. 配置1、设置静态IP地址、网关 1.1 cp /etc/network/interfaces /etc/network/interfacesbak #备份原有配置文件 1.2 nano /etc/network/interfaces #编辑网卡配置文件 注:auto eth0 #开机自动连接网络 ifa...
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数