Android 乙太網路Ethernet DHCP和靜態設定實現

來源:互聯網
上載者:User

前提:下面涉及的內容均需要系統許可權,也就是系統應用,開發非系統app則饒邊。


乙太網路設定一般是進入系統原生的設定APP,進入到乙太網路選項進行設定的。在一些專用場合,需要定製APP,不直接調用系統的設定,那麼就要自己實現乙太網路動態和靜態設定。


許可權:

<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />


EthernetDevInfo類有以下成員:

private String dev_name;
private String ipaddr; // IP地址
private String netmask; // 子網路遮罩
private String gw; // 網關設定
private String dns; // DNS設定
private int mode; // 模式設定:靜態或者動態
private String hwaddr; // MAC地址


一、擷取EthernetManager執行個體

private EthernetManager mEthManager;

private EthernetDevInfo mDevInfo;

mEthManager = EthernetManager.getInstance();


二、填充mDevInfo

靜態:

mDevInfo = mEthManager.getSavedConfig();
mDevInfo.setConnectMode(EthernetDevInfo.ETHERNET_CONN_MODE_MANUAL);
mDevInfo.setIpAddress("XXX");
mDevInfo.setNetMask("XXX");
mDevInfo.setDnsAddr("XXX");
mDevInfo.setGateWay("XXX");

mDevInfo.setHwaddr("XXX"); // getSavedConfig擷取的mac地址為null,需要主動填充地址,否則進入系統設定會因為地址null崩潰


動態:

mDevInfo = mEthManager.getSavedConfig();
mDevInfo.setConnectMode(EthernetDevInfo.ETHERNET_CONN_MODE_DHCP);

mDevInfo.setHwaddr("XXX");


三、更新配置資訊並enable ethernet service

mEthManager.updateDevInfo(mDevInfo);
mEthManager.setEnabled(true);


更多詳情可參考:

frameworks/base/ethernet/java/android/net/ethernet/EthernetManager.java

frameworks/base/ethernet/java/android/net/ethernet/EthernetDevInfo.java


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.