Android联网方式判断详解
3419 点击·0 回帖
![]() | ![]() | |
![]() | 工作闲余时间学习了下其它项目中的联网方式判断,很简单的..今天有时间就放博客里面供自己记录,有需要的朋友可以同小马交流交流,希望大家多多指点。。谢谢。。 主类: 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源码小马放附件里面了,以备自己注意丢了,呵呵,有需要的朋友可下载下的,一起学! | |
![]() | ![]() |