工作閑餘時間學習瞭下其它項目中的聯網方式判斷,很簡單的..今天有時間就放博客裡面供自己記錄,有需要的朋友可以同小馬交流交流,希望大傢多多指點。。謝謝。。
主類:
1. package com.xiaoma.www;
2.
3. import android.app.Activity;
4. import android.content.Context;
5. import android.content.Intent;
6. import android.database.Cursor;
7. import android.net.ConnectivityManager;
8. import android.net.NetworkInfo;
9. import android.net.NetworkInfo.State;
10. import android.net.Uri;
11. import android.os.Bundle;
12. import android.widget.TextView;
13.
14. /**
15. * @Title: JudgeNewWayDemoActivity.java
16. * @Package com.xiaoma.www
17. * @Description: 判斷聯網方式測試類
18. * @author MZH
19. */
20. public class JudgeNewWayDemoActivity extends Activity {
21.
22. private TextView text;
23.
24. /** Called when the activity is first created. */
25. @Override
26. public void onCreate(Bundle savedInstanceState) {
27. super.onCreate(savedInstanceState);
28. setContentView(R.layout.main);
29.
30. /**
31. * 下面列舉幾個可直接跳到聯網設置的意圖,供大傢學習
32. */
33. //startActivity(new Intent(android.provider.Settings.ACTION_APN_SETTINGS));
34. //startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
35.
36. //用下面兩種方式設置網絡
37. //startActivity(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS));
38. //startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
39. init();
40. }
41.
42. /**
43. * 初始化實現
44. */
45. private void init(){
46. text = (TextView)findViewById(R.id.waytext);
47. /**獲得系統級聯網管理員對象*/
48. ConnectivityManager manager = (ConnectivityManager)this.getSystemService(CONNECTIVITY_SERVICE);
49. NetworkInfo info = manager.getActiveNetworkInfo();
50. if(info == null){ //無網情況下
51. //跳轉到網絡設置頁面
52. startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
53. }else{ //有網情況下
54. if(info.isAvailable()){ //網絡可用時
55. /**是手機自帶的聯網方式*/
56. if(info.getType() == ConnectivityManager.TYPE_MOBILE){
57. if(info.getState() == State.CONNECTED){
58. text.setText(String.valueOf("手機網絡可用並已連接"+"\n"+"連接網絡方式為:\n"+info.getType()+",MOBILE"));
59. }
60.
61. /**WIFI聯網方式*/
62. }else{
63. text.setText(String.valueOf("連接網絡方式為:"+info.getType()+",WI-FI"));
64. startActivity(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS));
65. }
66. }else{
67. text.setText(String.valueOf("手機網絡不可用"));
68. }
69.
70. }
71. }
72.
73. /**
74. * 臨時寫來練練的方法,大傢可以跳過
75. */
76. private void kkk(){
77. Uri uri = Uri.parse("content://telephony/carriers");
78. Cursor cr = getContentResolver().query(uri, null, null, null, null);
79. while(cr!=null && cr.moveToNext()){
80. // APN id
81. String id = cr.getString(cr.getColumnIndex("_id"));
82. // APN name
83. String apn = cr.getString(cr.getColumnIndex("apn"));
84. // do other things…
85. }
86. }
87.
88.
89. /**
90. * 移動或聯通ctwap cmwap 判斷 這個方法朋友們可根據自己的需要使用,小馬
91. * 隻是記在這個地方,供自己記錄的,有需要的朋友可以交流討論下..吼吼
92. */
93. @SuppressWarnings("unused")
94. private void initWapState() {
95. //ConnectivityManager: Class that answers queries about the state of network connectivity.
96. ConnectivityManager conMan = (ConnectivityManager)
97. getSystemService(Context.CONNECTIVITY_SERVICE);
98. NetworkInfo netInfo = conMan.getActiveNetworkInfo();
99. if (netInfo != null) {
100. String extraInfo = netInfo.getExtraInfo();//Report the extra information about the network state
101. if (extraInfo != null) {
102. if (extraInfo.equals("cmwap")) {
103.
104. }else if(extraInfo.equals("ctwap") || extraInfo.equals("#777")){
105.
106. }
107. }
108. }
109. }
110.
111.
112. }
WIFI控制類:
1. package com.xiaoma.www;
2.
3. import java.util.List;
4.
5. import android.content.Context;
6. import android.net.wifi.ScanResult;
7. import android.net.wifi.WifiConfiguration;
8. import android.net.wifi.WifiInfo;
9. import android.net.wifi.WifiManager;
10. import android.net.wifi.WifiManager.WifiLock;
11.
12. /**
13. * @Title: WifiCheckUtil.java
14. * @Package com.lg.lvguo.util
15. * @Description: WIFI控制類
16. * @author MZH
17. * @version FG1.0
18. */
19. public class WifiCheckUtil {
20. //定義WifiManager對象
21. private WifiManager mWifiManager;
22. //定義WifiInfo對象
23. private WifiInfo mWifiInfo;
24. //掃描出的網絡連接列表
25. private List<ScanResult> mWifiList;
26. //網絡連接列表
27. private List<WifiConfiguration> mWifiConfiguration;
28. //定義一個WifiLock
29. WifiLock mWifiLock;
30. //構造器
31. public WifiCheckUtil(Context context)
32. {
33. //取得WifiManager對象
34. mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
35. //取得WifiInfo對象
36. mWifiInfo = mWifiManager.getConnectionInfo();
37. }
38. //取到WIFI狀態
39. public int checkWifiState(){
40. return mWifiManager.getWifiState();
41. }
42. //打開WIFI
43. public void OpenWifi()
44. {
45. if (!mWifiManager.isWifiEnabled())
46. {
47. mWifiManager.setWifiEnabled(true);
48.
49. }
50. }
51. //關閉WIFI
52. public void CloseWifi()
53. {
54. if (!mWifiManager.isWifiEnabled())
55. {
56. mWifiManager.setWifiEnabled(false);
57. }
58. }
59. //鎖定WifiLock
60. public void AcquireWifiLock()
61. {
62. mWifiLock.acquire();
63. }
64. //解鎖WifiLock
65. public void ReleaseWifiLock()
66. {
67. //判斷時候鎖定
68. if (mWifiLock.isHeld())
69. {
70. mWifiLock.acquire();
71. }
72. }
73. //創建一個WifiLock
74. public void CreatWifiLock()
75. {
76. mWifiLock = mWifiManager.createWifiLock("Lock");
77. }
78. //得到配置好的網絡
79. public List<WifiConfiguration> GetConfiguration()
80. {
81. return mWifiConfiguration;
82. }
83. //指定配置好的網絡進行連接
84. public void ConnectConfiguration(int index)
85. {
86. //索引大於配置好的網絡索引返回
87. if(index > mWifiConfiguration.size())
88. {
89. return;
90. }
91. //連接配置好的指定ID的網絡
92. mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId, true);
93. }
94. public void StartScan()
95. {
96. mWifiManager.startScan();
97. //得到掃描結果
98. mWifiList = mWifiManager.getScanResults();
99. //得到配置好的網絡連接
100. mWifiConfiguration = mWifiManager.getConfiguredNetworks();
101. }
102. //得到網絡列表
103. public List<ScanResult> GetWifiList()
104. {
105. return mWifiList;
106. }
107. //查看掃描結果
108. public StringBuilder LookUpScan()
109. {
110. StringBuilder stringBuilder = new StringBuilder();
111. for (int i = 0; i < mWifiList.size(); i++)
112. {
113. stringBuilder.append("Index_"+new Integer(i + 1).toString() + ":");
114. //將ScanResult信息轉換成一個字符串包
115. //其中把包括:BSSID、SSID、capabilities、frequency、level
116. stringBuilder.append((mWifiList.get(i)).toString());
117. stringBuilder.append("/n");
118. }
119. return stringBuilder;
120. }
121. //得到MAC地址
122. public String GetMacAddress()
123. {
124. return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress();
125. }
126. //得到接入點的BSSID
127. public String GetBSSID()
128. {
129. return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID();
130. }
131. //得到IP地址
132. public int GetIPAddress()
133. {
134. return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress();
135. }
136. //得到連接的ID
137. public int GetNetworkId()
138. {
139. return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId();
140. }
141. //得到WifiInfo的所有信息包
142. public String GetWifiInfo()
143. {
144. return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString();
145. }
146. //添加一個網絡並連接
147. public void AddNetwork(WifiConfiguration wcg)
148. {
149. int wcgID = mWifiManager.addNetwork(wcg);
150. mWifiManager.enableNetwork(wcgID, true);
151. }
152. //斷開指定ID的網絡
153. public void DisconnectWifi(int netId)
154. {
155. mWifiManager.disableNetwork(netId);
156. mWifiManager.disconnect();
157. }
158. }
全局配置文件:
1. <?xml version="1.0" encoding="utf-8"?>
2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3. package="com.xiaoma.www"
4. android:versionCode="1"
5. android:versionName="1.0" >
6.
7. <uses-sdk android:minSdkVersion="15" />
8.
9. <application
10. android:icon="@drawable/ic_launcher"
11. android:label="@string/app_name" >
12. <activity
13. android:name=".JudgeNewWayDemoActivity"
14. android:label="@string/app_name" >
15. <intent-filter>
16. <action android:name="android.intent.action.MAIN" />
17.
18. <category android:name="android.intent.category.LAUNCHER" />
19. </intent-filter>
20. </activity>
21. </application>
22. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
23. </manifest>
小DEMO源碼小馬放附件裡面瞭,以備自己註意丟瞭,呵呵,有需要的朋友可下載下的,一起學!
摘自 酷_莫名簡單