package com.zed.ipinfo;
import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.os.Bundle;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.LinkAddress;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
import android.preference.SwitchPreference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.util.Log;
import android.os.SystemProperties;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.util.regex.Pattern;
import java.util.ArrayList;
import android.net.EthernetManager;
import android.net.IpConfiguration;
import android.net.IpConfiguration.IpAssignment;
import android.net.IpConfiguration.ProxySettings;
import android.net.wifi.SupplicantState;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.net.StaticIpConfiguration;
import android.net.NetworkUtils;
import android.net.LinkAddress;
import android.net.LinkProperties;
import android.preference.ListPreference;
public class EthernetActivity extends PreferenceActivity
implements DialogInterface.OnClickListener ,OnPreferenceChangeListener{
private static final String TAG = "hc";
private static final String KEY_ETH_IP_ADDRESS = "ethernet_ip_addr";
private static final String KEY_ETH_HW_ADDRESS = "ethernet_hw_addr";
private static final String KEY_ETH_NET_MASK = "ethernet_netmask";
private static final String KEY_ETH_GATEWAY = "ethernet_gateway";
private static final String KEY_ETH_DNS1 = "ethernet_dns1";
private static final String KEY_ETH_DNS2 = "ethernet_dns2";
private static final String KEY_ETH_MODE= "ethernet_mode_select";
private static String mEthHwAddress = null;
private static String mEthIpAddress = null;
private static String mEthNetmask = null;
private static String mEthGateway = null;
private static String mEthdns1 = null;
private static String mEthdns2 = null;
private final static String nullIpInfo = "0.0.0.0";
private ListPreference mkeyEthMode;
private SwitchPreference mEthCheckBox;
private CheckBoxPreference staticEthernet;
private final IntentFilter mIntentFilter;
IpConfiguration mIpConfiguration;
EthernetManager mEthManager;
StaticIpConfiguration mStaticIpConfiguration;
Context mContext;
private EtherentStaticIpDialog mDialog;
private static final int SHOW_RENAME_DIALOG = 0;
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
log("Action "+action);
if(EthernetManager.ETHERNET_STATE_CHANGED_ACTION.equals(action)) {
/*接收到以太网状态改变的广播*/
int EtherState=intent.getIntExtra(EthernetManager.EXTRA_ETHERNET_STATE, -1);
handleEtherStateChange(EtherState);
}
}
};
public EthernetActivity() {
mIntentFilter = new IntentFilter(EthernetManager.ETHERNET_STATE_CHANGED_ACTION);
}
/*
*
*/
private void handleEtherStateChange(int EtherState ) {
log("curEtherState"+ EtherState);
switch(EtherState) {
case EthernetManager.ETHER_STATE_DISCONNECTED:
mEthHwAddress = nullIpInfo;
mEthIpAddress = nullIpInfo;
mEthNetmask = nullIpInfo;
mEthGateway = nullIpInfo;
mEthdns1 = nullIpInfo;
mEthdns2 = nullIpInfo;
break;
case EthernetManager.ETHER_STATE_CONNECTING:
String mStatusString = this.getResources().getString(R.string.ethernet_info_getting);
mEthHwAddress = mStatusString;
mEthIpAddress = mStatusString;
mEthNetmask = mStatusString;
mEthGateway = mStatusString;
mEthdns1 = mStatusString;
mEthdns2 = mStatusString;
break;
case EthernetManager.ETHER_STATE_CONNECTED:
getEthInfo();
break;
}
refreshUI();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.ethernet_settings);
mEthManager = (EthernetManager) getSystemService(Context.ETHERNET_SERVICE);
if (mEthManager == null) {
Log.e(TAG, "get ethernet manager failed");
return;
}
mContext=this.getApplicationContext();
}
private Inet4Address getIPv4Address(String text) {
try {
return (Inet4Address) NetworkUtils.numericToInetAddress(text);
} catch (IllegalArgumentException|ClassCastException e) {
return null;
}
}
@Override
public void onResume() {
super.onResume();
if(mkeyEthMode==null) {
mkeyEthMode=(ListPreference)findPreference(KEY_ETH_MODE);
mkeyEthMode.setOnPreferenceChangeListener(this);
}
if (mEthCheckBox== null) {
mEthCheckBox = (SwitchPreference) findPreference("ethernet");
}
handleEtherStateChange(mEthManager.getEthernetConnectState());
refreshUI();
log("resume");
mContext.registerReceiver(mReceiver, mIntentFilter);
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void onDestroy() {
super.onDestroy();
log("destory");
}
@Override
public void onStop(){
super.onStop();
log("stop");
mContext.unregisterReceiver(mReceiver);
}
private void setStringSummary(String preference, String value) {
try {
findPreference(preference).setSummary(value);
} catch (RuntimeException e) {
findPreference(preference).setSummary("");
log("can't find "+preference);
}
}
private String getStringFromPref(String preference) {
try {
return findPreference(preference).getSummary().toString();
} catch (RuntimeException e) {
return null;
}
}
private void refreshUI ( ) {
// setStringSummary(KEY_ETH_HW_ADDRESS,mEthHwAddress);
setStringSummary(KEY_ETH_IP_ADDRESS, mEthIpAddress);
setStringSummary(KEY_ETH_NET_MASK, mEthNetmask);
setStringSummary(KEY_ETH_GATEWAY, mEthGateway);
setStringSummary(KEY_ETH_DNS1, mEthdns1);
setStringSummary(KEY_ETH_DNS2, mEthdns2);
updateCheckbox();
}
private void updateCheckbox(){ //add by ljh for adding a checkbox switch
if(mEthManager==null){
mkeyEthMode.setSummary("null");
} else {
boolean useDhcp=(mEthManager.getConfiguration().ipAssignment == IpAssignment.DHCP) ? true : false;
if(useDhcp){
mkeyEthMode.setValue("DHCP");
mkeyEthMode.setSummary(R.string.usedhcp);
}else {
mkeyEthMode.setValue("StaticIP");
mkeyEthMode.setSummary(R.string.usestatic);
}
int isEnable = mEthManager.getEthernetIfaceState();
if(isEnable == EthernetManager.ETHER_IFACE_STATE_UP) {
mEthCheckBox.setChecked(true);
}else mEthCheckBox.setChecked(false);
}
}
@Override
public boolean onPreferenceChange(Prefere
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
IPinfo.tar.gz (25个子文件)
IPinfo
proguard.flags 880B
src
com
zed
ipinfo
EthernetActivity.java 17KB
GetStaticIpInfo.java 367B
EtherentStaticIpDialog.java 8KB
AndroidManifest.xml 816B
res
mipmap-hdpi
ic_launcher.png 3KB
ic_launcher_round.png 4KB
mipmap-xxxhdpi
ic_launcher.png 10KB
ic_launcher_round.png 14KB
mipmap-xhdpi
ic_launcher.png 5KB
ic_launcher_round.png 6KB
xml
ethernet_settings.xml 2KB
mipmap-mdpi
ic_launcher.png 2KB
ic_launcher_round.png 2KB
drawable
layout
static_ip_dialog.xml 7KB
values
colors.xml 214B
arrays.xml 341B
strings.xml 2KB
styles.xml 1KB
mipmap-xxhdpi
ic_launcher.png 8KB
ic_launcher_round.png 10KB
MODULE_LICENSE_APACHE2 0B
Android.mk 1KB
NOTICE 10KB
CleanSpec.mk 2KB
共 25 条
- 1
资源评论
- 大神大咖大牛2018-08-07大神,为什么有的类不能导入呢?方便指导我一下吗?救急QQ:1151523919
- 猫啸山林2019-06-06没有带源码的类包,没法用
baifaqingsi
- 粉丝: 25
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- user+name.csv
- 安卓学习教材经验Android进阶学习资料安卓面试资料等文档资料合集(22个).zip
- 王小晨申论高分课.zip
- 基于matlab实现说话人语音识别源码+项目说明+PPT+报告(高分项目).zip
- VSc++编程助手1.0 - 1
- 基于matlab的说话人语音识别源码+PPT+报告(优质项目).zip
- 语音识别基于matlab说话人识别系统源码+报告PPT(高分优质项目).zip
- 毕业设计: 校园失物招领小程序的设计与实现论文(源码 + 数据库 + 说明文档)
- 美易ME-DUI自绘模块3.3-易语言模块
- 毕业设计:小程序消防知识每天学(源码 + 数据库 + 说明文档)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功