检测安卓手机联网方式

通信渠道

•WLAN(wi-fi)
•手机APN(接入点)
•基站
•Wap方式(地域性、增值业务——IP是10.0.0.172 端口是80 )  当连上网时可以设置这种 具体看代码
•Net方式

实现方式:

•使用HttpClient
•使用HttpURLConnection
•使用Socket通信(豌豆荚(USB、WIFI、蓝牙)、聊天工具)

特别注意:

1、连网时网络类型的判断,当为手机上网时注意代理信息获取。

2、当使用手机上网时我们的联网代码的编写。

 1 package cn.itcasta.lottery0713.util;
 2 
 3 import android.content.ContentResolver;
 4 import android.content.Context;
 5 import android.database.Cursor;
 6 import android.net.ConnectivityManager;
 7 import android.net.NetworkInfo;
 8 import android.net.Uri;
 9 import cn.itcasta.lottery0713.GloableParams;
10 
11 /**
12  * 判断当前手机联网的渠道
13  * @author Administrator
14  *
15  */
16 public class NetUtil {
17     /**
18      * 检查当前手机网络
19      * @param context
20      * @return
21      */
22     public static boolean checkNet(Context context)
23     {
24         //判断连接方式
25         boolean wifiConnected = isWIFIConnected(context);
26         boolean mobileConnected = isMOBILEConnected(context);
27         if(wifiConnected==false&&mobileConnected==false){
28         //如果都没有连接返回false,提示用户当前没有网络
29             return false;
30         }
31         if(mobileConnected==true)
32         {
33             //判断到当前是mobile连接,设置apn
34             setApnParame(context);
35         }
36         return true;
37     }
38     
39     
40     //判断手机使用是wifi还是mobile
41     /**
42      * 判断手机是否采用wifi连接
43      */
44     public static boolean isWIFIConnected(Context context)
45     {
46         //Context.CONNECTIVITY_SERVICE). 
47 
48         ConnectivityManager manager=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
49         NetworkInfo networkInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
50         if(networkInfo!=null&&networkInfo.isConnected())
51         {
52             return true;
53         }
54         return false;
55     }
56     
57     public static boolean isMOBILEConnected(Context context)
58     {
59         ConnectivityManager manager=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
60         NetworkInfo networkInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
61         if(networkInfo!=null&&networkInfo.isConnected())
62         {
63             return true;
64         }
65         return false;
66     }
67     /**
68      * 设置当前apn信息,保存到应用的全局的变量里面
69      * @param context
70      */
71     public static void setApnParame(Context context)
72     {
73         //Uri PREFERRED_APN_URI = Uri.parse("content://telephony/carriers/preferapn");
74 
75         Uri uri=Uri.parse("content://telephony/carriers/preferapn"); 
76         
77         ContentResolver contentResolver = context.getContentResolver();
78         Cursor query = contentResolver.query(uri, null, null, null, null);
79         if(query!=null&&query.getCount()==1)
80         {
81             if(query.moveToFirst())
82             {
83                 GloableParams.PROXY_IP=query.getString(query.getColumnIndex("proxy"));
84                 GloableParams.PROXY_PORT=query.getInt(query.getColumnIndex("port"));
85             }
86         }
87         query.close();
88     }
89 }
原文地址:https://www.cnblogs.com/friends-wf/p/4750751.html