In our project's tool class, these methods should be resident methods, because they are too often used, on the one hand, these methods summarized in this article, in order to use their own later, on the other hand to provide a convenient, save every time to find.
1. Determine whether the network is currently connected
Returns true regardless of whether the connection is WiFi or mobile network, otherwise false
Public Static Boolean isnetworkavailable(Context context) {if(context!=NULL) {//Get system ServicesConnectivitymanager cm = (Connectivitymanager) context.getsystemservice (Context.connectivity_service);//Get current Network informationNetworkinfo activenetworkinfo = Cm.getactivenetworkinfo ();if(activenetworkinfo!=NULL) {//If the network is already connected, it will return true returnActivenetworkinfo.isavailable (); } }return false; }
There is another way, and this method returns the same result.
Public Static Boolean isnetworkavailable(Context context) {//Get system service, get ConnectivitymanagerConnectivitymanager connectivity = (Connectivitymanager) context.getsystemservice (Context.connectivity_service);if(Connectivity = =NULL) { }Else{//Get all network informationNetworkinfo[] info = Connectivity.getallnetworkinfo ();if(Info! =NULL) {//traverse the obtained network information for(inti =0; i < info.length; i++) {//Returns True when the network status is connected if(info[i].getstate () = = NetworkInfo.State.CONNECTED) {return true; } } } }return false; }
About network status Networkinfo.state has the following summary:
detailed State |
coarse-grained State |
IDLE |
disconnected |
scanning |
connecting |
connecting |
connecting |
authenticating |
connecting |
CONNECTED |
connected |
disconnecting |
disconnecting |
disconnected |
disconnected |
unavailable |
disconnected |
FAILED |
disconnected |
Detailed Status |
Rough State |
Free |
Not connected |
are searching |
Connecting in progress |
Connecting in progress |
Connecting in progress |
Verifying in progress |
Connecting in progress |
has been connected to the |
has been connected to the |
Disconnecting connection |
Disconnecting connection |
Already disconnected |
Not connected |
Network not available |
Not connected |
Failed |
Not connected |
2. Determine if the current network is a WiFi network
publicstaticbooleanisWifi(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); ifnull && activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) { returntrue; } returnfalse; }
3. Determine if the current network is a mobile network
publicstaticbooleanisMONET(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); ifnull && activeNetInfo.getType() == ConnectivityManager.TYPE_MOBILE) { returntrue; } returnfalse; }
4. Determine how the device is positioned
Android phones have 3 modes of targeting
1. Network mode: The positioning accuracy of this mode is low, the positioning speed is fast, power consumption is general, need authority
android.permission.ACCESS_COARSE_LOCATION或者android.permission.ACCESS_FINE_LOCATION
2.GPS: This mode positioning accuracy is high, positioning speed, power consumption, indoor or GPS signal poor location, need permission
android.permission.ACCESS_FINE_LOCATION
3. Passive positioning: This mode is the location information obtained by listening to other applications to request location services to obtain location information, no additional power consumption, the limitations are large, need to rely on other applications, the need for permissions
android.permission.ACCESS_FINE_LOCATION
Let's look at how to get the current device to open the positioning mode, the passive mode is automatically opened, mixed mode is the network mode and GPS mode are open, the advantages of this mode is: Short positioning time, high precision. Cons: Fee Electricity
//0 means passive Mode 1 means network Mode 2 means GPS mode 3 means mixed mode Public Static int Getlocationmode(Context context) {BooleanNetwork =false;BooleanGPS =false; Locationmanager Locationmanager = ((Locationmanager) context. Getsystemservice (Context.location_service)); list<string> accessibleproviders = Locationmanager.getproviders (true); for(intI=0; I<accessibleproviders.size (); i++) {String type = Accessibleproviders.get (i);if(LocationManager.NETWORK_PROVIDER.equals (type)) {Network =true;Continue; }if(LocationManager.GPS_PROVIDER.equals (type)) {GPS =true;Continue; } }if(NETWORK&&GPS) {return 3; }Else if(Network) {return 1; }Else if(GPS) {return 2; }return 0; }
Copyright NOTICE: Welcome reprint, Reprint please indicate the source http://blog.csdn.net/nugongahou110
Determine Android network status information-wifi,3g/4g and positioning mode-gps,network,passive