Settings 中以太网设置解读
来源:互联网 发布:js超出部分省略号 编辑:程序博客网 时间:2024/06/16 13:57
Settings 中以太网设置解读:
if(mEthManager.getEthernetMode().equals(EthernetManager.ETHERNET_CONNECT_MODE_DHCP)){
mDhcpIP.setChecked(true);
mStaticIP.setChecked(false);
showDhcpIP();
}else{
mDhcpIP.setChecked(false);
mStaticIP.setChecked(true);
mDhcpIP.setSummary("");
showStaticIP(); //show IP from DB
}
public void showDhcpIP() {
mLinkPro = mConnectivityManager.getLinkProperties(ConnectivityManager.TYPE_ETHERNET);
在ConnectivityManager中:
public LinkProperties getLinkProperties(int networkType) {
try {//调用IConnectivityManager的getLinkProperties方法
return mService.getLinkProperties(networkType);
} catch (RemoteException e) {
return null;
}
}
mService 是在构造的时候传进来的
public ConnectivityManager(IConnectivityManager service) {
mService = checkNotNull(service, "missing IConnectivityManager");
}
public static final Uri CONTENT_URI =
Uri.parse("content://" + AUTHORITY + "/secure");
public static Uri getUriFor(String name) {
return getUriFor(CONTENT_URI, name);
}
public static Uri getUriFor(Uri uri, String name) {
return Uri.withAppendedPath(uri, name);
}
监听IP,DNS 等URI变化,刷新UI
private void registerObserver() {
this.getContentResolver().registerContentObserver(
Settings.Secure.getUriFor(Settings.Secure.ETHERNET_IP), true, dbObserver);
private ContentObserver dbObserver = new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
if(DEBUG) Log.d(TAG, "IP Changed beging to handle DB Changed" + selfChange);
//mEthManager.setEthernetEnabled(false);
getIP(false);
//mEthManager.setEthernetEnabled(true);
}
};
这里DhcpInfoInternal 保存dhcp信息
DhcpInfoInternal mDhcpInfoInternal = new DhcpInfoInternal();
mDhcpInfoInternal.getFromDhcpInfo(mEthManager.getSavedEthernetIpInfo());
String IP = mDhcpInfoInternal.ipAddress;
mIPaddress.setTitle(getString(R.string.eth_ipaddr) + m_space + IP);//mIPaddress.setTitle(IP);
怎么拿到服务端暴露的INetworkManagementService 接口:
private INetworkManagementService mNwService;
IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE);
mNwService = INetworkManagementService.Stub.asInterface(b);
- Settings 中以太网设置解读
- 【Django】settings(django中settings设置)
- 【Django】settings(django中settings设置)
- C#中使用设置(Settings.settings) Properties.Settings.Default .
- C#中使用设置(Settings.settings) Properties.Settings.Default .
- django中settings.py设置
- VC6.0的工程设置解读Project--Settings
- c# Settings.settings 设置
- c# Settings.settings 设置
- c# Settings.settings 设置
- C#中使用设置 Properties.Settings.Default
- C#中使用设置 Properties.Settings.Default
- Django中Settings的设置分类
- 设置(Settings)
- Settings 设置
- ios开发中 应用设置的简单开发 (Settings.bundle)
- Xcode环境变量 build Settings 设置 (学习中)
- ios开发中 应用设置的简单开发 (Settings.bundle)
- 图片浏览器学习之一
- 林志玲“女神导航”,高德如何用够明星价值?
- 国内最大火车票代购网因强收保险费被罚150万
- 用C++的静态和动态cast 替代C语言风格的老式的强制类型转换
- FIREBIRD的基本数据类型
- Settings 中以太网设置解读
- while a presentation or dismiss is in progress
- 关于子类到父类强转的问题记录(学习整理)
- Edit Distance (LeetCode)
- CERN(欧洲核子研究组织,法文缩写)的文件分享网站
- 经典 Linux & VIM 教程
- 关闭正在运行的应用
- java 环境配置
- 软件思想摘要