Android Ethernet以太网使用静态IP,经典实战教程

文章讲述了如何在Android应用中获取和设置以太网的静态IP地址、网关、子网掩码和DNS服务器,以及使用系统应用API进行重启的过程。作者还分享了关于Android移动开发的学习资源,包括大厂经验、学习笔记等内容。
摘要由CSDN通过智能技术生成

GET


checkStaticIP = (CheckBox) findViewById(R.id.checkStaticIP);

checkStaticIP.setChecked(Settings.System.getInt(contentResolver,

ETHERNET_USE_STATIC_IP, 0) != 0);

checkStaticIP

.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton buttonView,

boolean isChecked) {

android.provider.Settings.System.putInt(

contentResolver, ETHERNET_USE_STATIC_IP,

isChecked ? 1 : 0);

}

});

// GET static IP

editIPAddress = (EditText) findViewById(R.id.editIPAddress);

editIPAddress.setText(Settings.System.getString(contentResolver,

ETHERNET_STATIC_IP));

// GET static gateway

editGateway = (EditText) findViewById(R.id.editGateway);

editGateway.setText(Settings.System.getString(contentResolver,

ETHERNET_STATIC_GATEWAY));

// GET static netmask

editNetmask = (EditText) findViewById(R.id.editNetmask);

editNetmask.setText(Settings.System.getString(contentResolver,

ETHERNET_STATIC_NETMASK));

// GET static dns1

editDNS1 = (EditText) findViewById(R.id.editDNS1);

editDNS1.setText(Settings.System.getString(contentResolver,

ETHERNET_STATIC_DNS1));

// GET static dns2

editDNS2 = (EditText) findViewById(R.id.editDNS2);

editDNS2.setText(Settings.System.getString(contentResolver,

ETHERNET_STATIC_DNS2));

SET


// SET static IP

String strIP = editIPAddress.getText().toString();

Settings.System.putString(contentResolver, ETHERNET_STATIC_IP,

strIP);

// SET static gateway

String strGateway = editGateway.getText().toString();

Settings.System.putString(contentResolver,

ETHERNET_STATIC_GATEWAY, strGateway);

// SET static netmask

String strNetmask = editNetmask.getText().toString();

Settings.System.putString(contentResolver,

ETHERNET_STATIC_NETMASK, strNetmask);

// SET static dns1

String strDns1 = editDNS1.getText().toString();

Settings.System.putString(contentResolver,

ETHERNET_STATIC_DNS1, strDns1);

// SET static dns2

String strDns2 = editDNS2.getText().toString();

Settings.System.putString(contentResolver,

ETHERNET_STATIC_DNS2, strDns2);

// 重启以太网,系统应用API

int preState = mEthManager.getEthernetIfaceState();

mEthManager.setEthernetEnabled(false);

if (preState == EthernetDataTracker.ETHER_IFACE_STATE_UP) {

mEthManager.setEthernetEnabled(true);

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

最后

给大家送上我成功跳槽复习中所整理的资料,由于文章篇幅有限,所以只是把题目列出来了,我自己手头上整理的资料均和上面的答案可免费分享,需要这些资料和答案的朋友,可以点击这里免费领取

image

image

只是把题目列出来了,我自己手头上整理的资料均和上面的答案可免费分享,需要这些资料和答案的朋友,可以点击这里免费领取

[外链图片转存中…(img-zniSF7cy-1711289029302)]

[外链图片转存中…(img-9FOmi339-1711289029303)]

image

  • 26
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Android 11 上设置以太网静态 IP 路由,可以使用以下代码实现: 1. 添加权限到 AndroidManifest.xml 文件中: ``` <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> ``` 2. 在代码中添加以下代码: ```java // 获取 ConnectivityManager ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); // 获取当前活动网络信息 Network activeNetwork = connectivityManager.getActiveNetwork(); // 获取 Ethernet 网络信息 NetworkInfo ethernetNetworkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_ETHERNET); // 判断 Ethernet 网络是否已连接 if (ethernetNetworkInfo.isConnected()) { // 获取 Ethernet 网络的网络 ID int ethernetNetworkId = ethernetNetworkInfo.getNetworkId(); // 创建一个 Ethernet 网络的路由信息 RouteInfo ethernetRouteInfo = new RouteInfo(new IpPrefix("192.168.0.0/24"), null, "eth0", RouteInfo.RTN_UNICAST); // 获取 Wi-Fi 网络信息 NetworkInfo wifiNetworkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); // 判断 Wi-Fi 网络是否已连接 if (wifiNetworkInfo.isConnected()) { // 获取 Wi-Fi 网络的网络 ID int wifiNetworkId = wifiNetworkInfo.getNetworkId(); // 创建一个 Wi-Fi 网络的路由信息 RouteInfo wifiRouteInfo = new RouteInfo(new IpPrefix("192.168.1.0/24"), null, "wlan0", RouteInfo.RTN_UNICAST); // 创建一个路由表 RouteTable routeTable = new RouteTable(); // 添加路由信息到路由表中 routeTable.add(ethernetRouteInfo); routeTable.add(wifiRouteInfo); // 设置路由表到 Ethernet 网络 connectivityManager.setNetworkRoutes(ethernetNetworkId, routeTable); // 设置路由表到 Wi-Fi 网络 connectivityManager.setNetworkRoutes(wifiNetworkId, routeTable); } } ``` 上述代码中,我们首先获取 ConnectivityManager 对象,并获取当前活动网络信息和 Ethernet 网络信息。如果 Ethernet 网络已连接,则获取 Ethernet 网络的网络 ID,并创建一个 Ethernet 网络的路由信息。接着,我们获取 Wi-Fi 网络信息,如果 Wi-Fi 网络已连接,则获取 Wi-Fi 网络的网络 ID,并创建一个 Wi-Fi 网络的路由信息。最后,我们创建一个路由表,并将路由信息添加到路由表中。最后,我们将路由表设置Ethernet 网络和 Wi-Fi 网络中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值