工作闲余时间学习了下其它项目中的联网方式判断,很简单的..今天有时间就放博客里面供自己记录,有需要的朋友可以同小马交流交流,希望大家多多指点。。谢谢。。

主类:

        
  1. packagecom.xiaoma.www;
  2. importandroid.app.Activity;
  3. importandroid.content.Context;
  4. importandroid.content.Intent;
  5. importandroid.database.Cursor;
  6. importandroid.net.ConnectivityManager;
  7. importandroid.net.NetworkInfo;
  8. importandroid.net.NetworkInfo.State;
  9. importandroid.net.Uri;
  10. importandroid.os.Bundle;
  11. importandroid.widget.TextView;
  12. /**
  13. *@Title:JudgeNewWayDemoActivity.java
  14. *@Packagecom.xiaoma.www
  15. *@Description:判断联网方式测试类
  16. *@authorMZH
  17. */
  18. publicclassJudgeNewWayDemoActivityextendsActivity{
  19. privateTextViewtext;
  20. /**Calledwhentheactivityisfirstcreated.*/
  21. @Override
  22. publicvoidonCreate(BundlesavedInstanceState){
  23. super.onCreate(savedInstanceState);
  24. setContentView(R.layout.main);
  25. /**
  26. *下面列举几个可直接跳到联网设置的意图,供大家学习
  27. */
  28. //startActivity(newIntent(android.provider.Settings.ACTION_APN_SETTINGS));
  29. //startActivity(newIntent(android.provider.Settings.ACTION_SETTINGS));
  30. //用下面两种方式设置网络
  31. //startActivity(newIntent(android.provider.Settings.ACTION_WIFI_SETTINGS));
  32. //startActivity(newIntent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
  33. init();
  34. }
  35. /**
  36. *初始化实现
  37. */
  38. privatevoidinit(){
  39. text=(TextView)findViewById(R.id.waytext);
  40. /**获得系统级联网管理员对象*/
  41. ConnectivityManagermanager=(ConnectivityManager)this.getSystemService(CONNECTIVITY_SERVICE);
  42. NetworkInfoinfo=manager.getActiveNetworkInfo();
  43. if(info==null){//无网情况下
  44. //跳转到网络设置页面
  45. startActivity(newIntent(android.provider.Settings.ACTION_SETTINGS));
  46. }else{//有网情况下
  47. if(info.isAvailable()){//网络可用时
  48. /**是手机自带的联网方式*/
  49. if(info.getType()==ConnectivityManager.TYPE_MOBILE){
  50. if(info.getState()==State.CONNECTED){
  51. text.setText(String.valueOf("手机网络可用并已连接"+"\n"+"连接网络方式为:\n"+info.getType()+",MOBILE"));
  52. }
  53. /**WIFI联网方式*/
  54. }else{
  55. text.setText(String.valueOf("连接网络方式为:"+info.getType()+",WI-FI"));
  56. startActivity(newIntent(android.provider.Settings.ACTION_WIFI_SETTINGS));
  57. }
  58. }else{
  59. text.setText(String.valueOf("手机网络不可用"));
  60. }
  61. }
  62. }
  63. /**
  64. *临时写来练练的方法,大家可以跳过
  65. */
  66. privatevoidkkk(){
  67. Uriuri=Uri.parse("content://telephony/carriers");
  68. Cursorcr=getContentResolver().query(uri,null,null,null,null);
  69. while(cr!=null&&cr.moveToNext()){
  70. //APNid
  71. Stringid=cr.getString(cr.getColumnIndex("_id"));
  72. //APNname
  73. Stringapn=cr.getString(cr.getColumnIndex("apn"));
  74. //dootherthings...
  75. }
  76. }
  77. /**
  78. *移动或联通ctwapcmwap判断这个方法朋友们可根据自己的需要使用,小马
  79. *只是记在这个地方,供自己记录的,有需要的朋友可以交流讨论下..吼吼
  80. */
  81. @SuppressWarnings("unused")
  82. privatevoidinitWapState(){
  83. //ConnectivityManager:Classthatanswersqueriesaboutthestateofnetworkconnectivity.
  84. ConnectivityManagerconMan=(ConnectivityManager)
  85. getSystemService(Context.CONNECTIVITY_SERVICE);
  86. NetworkInfonetInfo=conMan.getActiveNetworkInfo();
  87. if(netInfo!=null){
  88. StringextraInfo=netInfo.getExtraInfo();//Reporttheextrainformationaboutthenetworkstate
  89. if(extraInfo!=null){
  90. if(extraInfo.equals("cmwap")){
  91. }elseif(extraInfo.equals("ctwap")||extraInfo.equals("#777")){
  92. }
  93. }
  94. }
  95. }
  96. }

WIFI控制类:

        
  1. packagecom.xiaoma.www;
  2. importjava.util.List;
  3. importandroid.content.Context;
  4. importandroid.net.wifi.ScanResult;
  5. importandroid.net.wifi.WifiConfiguration;
  6. importandroid.net.wifi.WifiInfo;
  7. importandroid.net.wifi.WifiManager;
  8. importandroid.net.wifi.WifiManager.WifiLock;
  9. /**
  10. *@Title:WifiCheckUtil.java
  11. *@Packagecom.lg.lvguo.util
  12. *@Description:WIFI控制类
  13. *@authorMZH
  14. *@versionFG1.0
  15. */
  16. publicclassWifiCheckUtil{
  17. //定义WifiManager对象
  18. privateWifiManagermWifiManager;
  19. //定义WifiInfo对象
  20. privateWifiInfomWifiInfo;
  21. //扫描出的网络连接列表
  22. privateList<ScanResult>mWifiList;
  23. //网络连接列表
  24. privateList<WifiConfiguration>mWifiConfiguration;
  25. //定义一个WifiLock
  26. WifiLockmWifiLock;
  27. //构造器
  28. publicWifiCheckUtil(Contextcontext)
  29. {
  30. //取得WifiManager对象
  31. mWifiManager=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
  32. //取得WifiInfo对象
  33. mWifiInfo=mWifiManager.getConnectionInfo();
  34. }
  35. //取到WIFI状态
  36. publicintcheckWifiState(){
  37. returnmWifiManager.getWifiState();
  38. }
  39. //打开WIFI
  40. publicvoidOpenWifi()
  41. {
  42. if(!mWifiManager.isWifiEnabled())
  43. {
  44. mWifiManager.setWifiEnabled(true);
  45. }
  46. }
  47. //关闭WIFI
  48. publicvoidCloseWifi()
  49. {
  50. if(!mWifiManager.isWifiEnabled())
  51. {
  52. mWifiManager.setWifiEnabled(false);
  53. }
  54. }
  55. //锁定WifiLock
  56. publicvoidAcquireWifiLock()
  57. {
  58. mWifiLock.acquire();
  59. }
  60. //解锁WifiLock
  61. publicvoidReleaseWifiLock()
  62. {
  63. //判断时候锁定
  64. if(mWifiLock.isHeld())
  65. {
  66. mWifiLock.acquire();
  67. }
  68. }
  69. //创建一个WifiLock
  70. publicvoidCreatWifiLock()
  71. {
  72. mWifiLock=mWifiManager.createWifiLock("Lock");
  73. }
  74. //得到配置好的网络
  75. publicList<WifiConfiguration>GetConfiguration()
  76. {
  77. returnmWifiConfiguration;
  78. }
  79. //指定配置好的网络进行连接
  80. publicvoidConnectConfiguration(intindex)
  81. {
  82. //索引大于配置好的网络索引返回
  83. if(index>mWifiConfiguration.size())
  84. {
  85. return;
  86. }
  87. //连接配置好的指定ID的网络
  88. mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,true);
  89. }
  90. publicvoidStartScan()
  91. {
  92. mWifiManager.startScan();
  93. //得到扫描结果
  94. mWifiList=mWifiManager.getScanResults();
  95. //得到配置好的网络连接
  96. mWifiConfiguration=mWifiManager.getConfiguredNetworks();
  97. }
  98. //得到网络列表
  99. publicList<ScanResult>GetWifiList()
  100. {
  101. returnmWifiList;
  102. }
  103. //查看扫描结果
  104. publicStringBuilderLookUpScan()
  105. {
  106. StringBuilderstringBuilder=newStringBuilder();
  107. for(inti=0;i<mWifiList.size();i++)
  108. {
  109. stringBuilder.append("Index_"+newInteger(i+1).toString()+":");
  110. //将ScanResult信息转换成一个字符串包
  111. //其中把包括:BSSID、SSID、capabilities、frequency、level
  112. stringBuilder.append((mWifiList.get(i)).toString());
  113. stringBuilder.append("/n");
  114. }
  115. returnstringBuilder;
  116. }
  117. //得到MAC地址
  118. publicStringGetMacAddress()
  119. {
  120. return(mWifiInfo==null)?"NULL":mWifiInfo.getMacAddress();
  121. }
  122. //得到接入点的BSSID
  123. publicStringGetBSSID()
  124. {
  125. return(mWifiInfo==null)?"NULL":mWifiInfo.getBSSID();
  126. }
  127. //得到IP地址
  128. publicintGetIPAddress()
  129. {
  130. return(mWifiInfo==null)?0:mWifiInfo.getIpAddress();
  131. }
  132. //得到连接的ID
  133. publicintGetNetworkId()
  134. {
  135. return(mWifiInfo==null)?0:mWifiInfo.getNetworkId();
  136. }
  137. //得到WifiInfo的所有信息包
  138. publicStringGetWifiInfo()
  139. {
  140. return(mWifiInfo==null)?"NULL":mWifiInfo.toString();
  141. }
  142. //添加一个网络并连接
  143. publicvoidAddNetwork(WifiConfigurationwcg)
  144. {
  145. intwcgID=mWifiManager.addNetwork(wcg);
  146. mWifiManager.enableNetwork(wcgID,true);
  147. }
  148. //断开指定ID的网络
  149. publicvoidDisconnectWifi(intnetId)
  150. {
  151. mWifiManager.disableNetwork(netId);
  152. mWifiManager.disconnect();
  153. }
  154. }

全局配置文件:

        
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <manifestxmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.xiaoma.www"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. <uses-sdkandroid:minSdkVersion="15"/>
  7. <application
  8. android:icon="@drawable/ic_launcher"
  9. android:label="@string/app_name">
  10. <activity
  11. android:name=".JudgeNewWayDemoActivity"
  12. android:label="@string/app_name">
  13. <intent-filter>
  14. <actionandroid:name="android.intent.action.MAIN"/>
  15. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  16. </intent-filter>
  17. </activity>
  18. </application>
  19. <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
  20. </manifest>

小DEMO源码小马放附件里面了,以备自己注意丢了,呵呵,有需要的朋友可下载下的,一起学!

更多相关文章

  1. 通过Android的okhttp接口访问网络接口
  2. LiveData+Retrofit 网络请求实战
  3. Android的Activity加载方式实例分析
  4. Android 开发艺术探索笔记(五) 之 Android 中的 IPC 方式
  5. Android 首选网络模式默认值的修改方法
  6. android学习小结3-各种控件使用方式DEMO
  7. Android桌面快捷方式那些事与那些坑
  8. Android中实现网络图片的获取
  9. android httpClient 支持HTTPS的访问方式

随机推荐

  1. Android利用ant将多个jar包合并成一个jar
  2. 项目总结
  3. Android基础和运行机制
  4. android usb主从设备模式解析,网络连接调
  5. Android ADB安装和卸载或删除Android设备
  6. Android应用程序及其主要结构
  7. android 程序工程架构
  8. Android 客户端访问服务器以及服务器开发
  9. android java开发 第二天 之熟悉 程序开
  10. Android(安卓)中的依赖注入框架