工作閑餘時間學習了下其它項目中的聯網方式判斷,很簡單的..今天有時間就放部落格裡面供自己記錄,有需要的朋友可以同小馬交流交流,希望大家多多指點。。謝謝。。
主類:
package com.xiaoma.www;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.NetworkInfo.State;
import android.net.Uri;
import android.os.Bundle;
import android.widget.TextView;
/**
* @Title: JudgeNewWayDemoActivity.java
* @Package com.xiaoma.www
* @Description: 判斷聯網方式測試類
* @author MZH
*/
public class JudgeNewWayDemoActivity extends Activity {
private TextView text;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/**
* 下面列舉幾個可直接跳到聯網設定的意圖,供大家學習
*/
//startActivity(new Intent(android.provider.Settings.ACTION_APN_SETTINGS));
//startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
//用下面兩種方式設定網絡
//startActivity(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS));
//startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
init();
}
/**
* 初始化實作
*/
private void init(){
text = (TextView)findViewById(R.id.waytext);
/**獲得系統級聯網管理者對象*/
ConnectivityManager manager = (ConnectivityManager)this.getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
if(info == null){ //無網情況下
//跳轉到網絡設定頁面
startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
}else{ //有網情況下
if(info.isAvailable()){ //網絡可用時
/**是手機自帶的聯網方式*/
if(info.getType() == ConnectivityManager.TYPE_MOBILE){
if(info.getState() == State.CONNECTED){
text.setText(String.valueOf("手機網絡可用并已連接配接"+"\n"+"連接配接網絡方式為:\n"+info.getType()+",MOBILE"));
}
/**WIFI聯網方式*/
}else{
text.setText(String.valueOf("連接配接網絡方式為:"+info.getType()+",WI-FI"));
startActivity(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS));
}
}else{
text.setText(String.valueOf("手機網絡不可用"));
}
}
* 臨時寫來練練的方法,大家可以跳過
private void kkk(){
Uri uri = Uri.parse("content://telephony/carriers");
Cursor cr = getContentResolver().query(uri, null, null, null, null);
while(cr!=null && cr.moveToNext()){
// APN id
String id = cr.getString(cr.getColumnIndex("_id"));
// APN name
String apn = cr.getString(cr.getColumnIndex("apn"));
// do other things...
}
* 移動或聯通ctwap cmwap 判斷 這個方法朋友們可根據自己的需要使用,小馬
* 隻是記在這個地方,供自己記錄的,有需要的朋友可以交流讨論下..吼吼
@SuppressWarnings("unused")
private void initWapState() {
//ConnectivityManager: Class that answers queries about the state of network connectivity.
ConnectivityManager conMan = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conMan.getActiveNetworkInfo();
if (netInfo != null) {
String extraInfo = netInfo.getExtraInfo();//Report the extra information about the network state
if (extraInfo != null) {
if (extraInfo.equals("cmwap")) {
}else if(extraInfo.equals("ctwap") || extraInfo.equals("#777")){
}
WIFI控制類:
import java.util.List;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiManager.WifiLock;
* @Title: WifiCheckUtil.java
* @Package com.lg.lvguo.util
* @Description: WIFI控制類
* @version FG1.0
public class WifiCheckUtil {
//定義WifiManager對象
private WifiManager mWifiManager;
//定義WifiInfo對象
private WifiInfo mWifiInfo;
//掃描出的網絡連接配接清單
private List<ScanResult> mWifiList;
//網絡連接配接清單
private List<WifiConfiguration> mWifiConfiguration;
//定義一個WifiLock
WifiLock mWifiLock;
//構造器
public WifiCheckUtil(Context context)
{
//取得WifiManager對象
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
//取得WifiInfo對象
mWifiInfo = mWifiManager.getConnectionInfo();
}
//取到WIFI狀态
public int checkWifiState(){
return mWifiManager.getWifiState();
//打開WIFI
public void OpenWifi()
if (!mWifiManager.isWifiEnabled())
{
mWifiManager.setWifiEnabled(true);
}
//關閉WIFI
public void CloseWifi()
mWifiManager.setWifiEnabled(false);
//鎖定WifiLock
public void AcquireWifiLock()
mWifiLock.acquire();
//解鎖WifiLock
public void ReleaseWifiLock()
//判斷時候鎖定
if (mWifiLock.isHeld())
mWifiLock.acquire();
//建立一個WifiLock
public void CreatWifiLock()
mWifiLock = mWifiManager.createWifiLock("Lock");
//得到配置好的網絡
public List<WifiConfiguration> GetConfiguration()
return mWifiConfiguration;
//指定配置好的網絡進行連接配接
public void ConnectConfiguration(int index)
//索引大于配置好的網絡索引傳回
if(index > mWifiConfiguration.size())
return;
//連接配接配置好的指定ID的網絡
mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId, true);
public void StartScan()
mWifiManager.startScan();
//得到掃描結果
mWifiList = mWifiManager.getScanResults();
//得到配置好的網絡連接配接
mWifiConfiguration = mWifiManager.getConfiguredNetworks();
//得到網絡清單
public List<ScanResult> GetWifiList()
return mWifiList;
//檢視掃描結果
public StringBuilder LookUpScan()
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < mWifiList.size(); i++)
stringBuilder.append("Index_"+new Integer(i + 1).toString() + ":");
//将ScanResult資訊轉換成一個字元串包
//其中把包括:BSSID、SSID、capabilities、frequency、level
stringBuilder.append((mWifiList.get(i)).toString());
stringBuilder.append("/n");
return stringBuilder;
//得到MAC位址
public String GetMacAddress()
return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress();
//得到接入點的BSSID
public String GetBSSID()
return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID();
//得到IP位址
public int GetIPAddress()
return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress();
//得到連接配接的ID
public int GetNetworkId()
return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId();
//得到WifiInfo的所有資訊包
public String GetWifiInfo()
return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString();
//添加一個網絡并連接配接
public void AddNetwork(WifiConfiguration wcg)
int wcgID = mWifiManager.addNetwork(wcg);
mWifiManager.enableNetwork(wcgID, true);
//斷開指定ID的網絡
public void DisconnectWifi(int netId)
mWifiManager.disableNetwork(netId);
mWifiManager.disconnect();
全局配置檔案:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xiaoma.www"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".JudgeNewWayDemoActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
</manifest>
小DEMO源碼小馬放附件裡面了,以備自己注意丢了,呵呵,有需要的朋友可下載下傳下的,一起學!
本文轉自華華世界 51CTO部落格,原文連結:http://blog.51cto.com/mzh3344258/791541,如需轉載請自行聯系原作者