IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 以太网接口(1)——Android7.1配置默认静态IP -> 正文阅读

[移动开发]以太网接口(1)——Android7.1配置默认静态IP

平台:RK3399
系统:Android7.1
不同于imx6 Android4.4网络配置单独写了个app,Android7.1的以太网配置集成到了Setting系统设置APP中。如下:
在这里插入图片描述
在这里插入图片描述
不过,Ethernet 静态IP模式中,IP地址、子网掩码等默认是空,没有初始值。下面尝试添加默认值。

涉及文件:
packages/apps/Settings/src/com/android/settings/ethernet/EtherentStaticIpDialog.java
packages/apps/Settings/src/com/android/settings/ethernet/EthernetSettings.java
packages/apps/Settings/src/com/android/settings/ethernet/getStaticIpInfo.java
packages/apps/Settings/src/com/android/settings/ethernet/PppoeDialog.java

网络配置涉及的文件较少,代码量也比较少,相对好操作。

        private void updateIpSettingsInfo() {
                Log.d("blb", "Static IP status updateIpSettingsInfo");
                ContentResolver contentResolver = mcontext.getContentResolver();
                String staticip = /*System.getString(contentResolver,System.ETHERNET_STATIC_IP);*/
						mEthManager.getIpAddress();
                if (!TextUtils.isEmpty(staticip))
						mIpAddressView.setText(staticip);

                String ipmask = /*System.getString(contentResolver,System.ETHERNET_STATIC_NETMASK);*/
						mEthManager.getNetmask();
                if (!TextUtils.isEmpty(ipmask))
						ipnetmask.setText(ipmask);

                String gateway = /*System.getString(contentResolver,System.ETHERNET_STATIC_GATEWAY);*/
						mEthManager.getGateway();
                if (!TextUtils.isEmpty(gateway))
						mIPgateway.setText(gateway);

                String dns = /*System.getString(contentResolver,System.ETHERNET_STATIC_DNS1);*/
						mEthManager.getDns();
				String mDns1 = nullIpInfo;
				String mDns2 = nullIpInfo;
				if ((dns != null) && (!dns.equals(""))){
						String data[] = dns.split(",");
                		mDns1 = data[0];
						if (data.length > 1)
								mDns2 = data[1];
				}
                if (!TextUtils.isEmpty(mDns1))
						mdns1.setText(mDns1);
				if (!TextUtils.isEmpty(mDns2))
						mdns2.setText(mDns2);
				/*String dns2 = System.getString(contentResolver,
						System.ETHERNET_STATIC_DNS2);
                if (!TextUtils.isEmpty(dns2))
                        mdns2.setText(dns2);*/
        }

updateIpSettingsInfo函数中已经有了DNS配置的模板,给mDns1赋初值,调用android.net.EthernetManager类中的getDns方法获取dns,如果dns为空,setText文本框输入刚才设置的初值。如果dns不为空,使用获取的dns重新设置mDns1,再将mDns1输入到文本框。
按照相似的方法设置IPaddress、Gateway和Netmask,修改方法如下:

diff --git a/packages/apps/Settings/src/com/android/settings/ethernet/EtherentStaticIpDialog.java b/packages/apps/Settings/src/com/android/settings/ethernet/EtherentStaticIpDial
og.java
index c7f1198211..077a42486d 100644
--- a/packages/apps/Settings/src/com/android/settings/ethernet/EtherentStaticIpDialog.java
+++ b/packages/apps/Settings/src/com/android/settings/ethernet/EtherentStaticIpDialog.java
@@ -63,6 +63,11 @@ class ethernet_static_ip_dialog extends AlertDialog implements TextWatcher {
        static final int BUTTON_FORGET = DialogInterface.BUTTON_NEUTRAL;

     private final static String nullIpInfo = "0.0.0.0";
+       private final static String defaultIP = "192.168.0.232";
+       private final static String defaultNetMask = "255.255.255.0";
+       private final static String defaultGateway = "192.168.0.1";
+       private final static String defaultDns1 = "8.8.8.8";
+       private final static String defaultDns2 = "114.114.114.114";

        // private final boolean mEdit;
        private final DialogInterface.OnClickListener mListener;
@@ -120,23 +125,38 @@ class ethernet_static_ip_dialog extends AlertDialog implements TextWatcher {
                ContentResolver contentResolver = mcontext.getContentResolver();
                String staticip = /*System.getString(contentResolver,System.ETHERNET_STATIC_IP);*/
                           mEthManager.getIpAddress();
-               if (!TextUtils.isEmpty(staticip))
-                       mIpAddressView.setText(staticip);
+               String mIP = defaultIP;
+               if ((staticip != null) && (!staticip.equals(""))){
+                       String data[] = staticip.split(",");
+                       mIP = data[0];
+               }
+               if (!TextUtils.isEmpty(mIP))
+                       mIpAddressView.setText(mIP);

                String ipmask = /*System.getString(contentResolver,System.ETHERNET_STATIC_NETMASK);*/
                         mEthManager.getNetmask();
-               if (!TextUtils.isEmpty(ipmask))
-                       ipnetmask.setText(ipmask);
+               String mIpmask = defaultNetMask;
+               if ((ipmask != null) && (!ipmask.equals(""))){
+                       String data[] = ipmask.split(",");
+                       mIpmask = data[0];
+               }
+               if (!TextUtils.isEmpty(mIpmask))
+                       ipnetmask.setText(mIpmask);

                String gateway = /*System.getString(contentResolver,System.ETHERNET_STATIC_GATEWAY);*/
                          mEthManager.getGateway();
-               if (!TextUtils.isEmpty(gateway))
-                       mIPgateway.setText(gateway);
+               String mGateway = defaultGateway;
+               if ((gateway != null) && (!gateway.equals(""))){
+                       String data[] = gateway.split(",");
+                       mGateway = data[0];
+               }
+               if (!TextUtils.isEmpty(mGateway))
+                       mIPgateway.setText(mGateway);

                String dns = /*System.getString(contentResolver,System.ETHERNET_STATIC_DNS1);*/
                       mEthManager.getDns();
-        String mDns1 = nullIpInfo;
-        String mDns2 = nullIpInfo;
+        String mDns1 = defaultDns1;
+        String mDns2 = defaultDns2;
         if ((dns != null) && (!dns.equals(""))){
             String data[] = dns.split(",");
                        mDns1 = data[0];
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:16:58  更:2021-09-12 13:17:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:56:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码