Android联网方式判断详解
16lz
2021-01-23
工作闲余时间学习了下其它项目中的联网方式判断,很简单的..今天有时间就放博客里面供自己记录,有需要的朋友可以同小马交流交流,希望大家多多指点。。谢谢。。
主类:
- packagecom.xiaoma.www;
- importandroid.app.Activity;
- importandroid.content.Context;
- importandroid.content.Intent;
- importandroid.database.Cursor;
- importandroid.net.ConnectivityManager;
- importandroid.net.NetworkInfo;
- importandroid.net.NetworkInfo.State;
- importandroid.net.Uri;
- importandroid.os.Bundle;
- importandroid.widget.TextView;
- /**
- *@Title:JudgeNewWayDemoActivity.java
- *@Packagecom.xiaoma.www
- *@Description:判断联网方式测试类
- *@authorMZH
- */
- publicclassJudgeNewWayDemoActivityextendsActivity{
- privateTextViewtext;
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- /**
- *下面列举几个可直接跳到联网设置的意图,供大家学习
- */
- //startActivity(newIntent(android.provider.Settings.ACTION_APN_SETTINGS));
- //startActivity(newIntent(android.provider.Settings.ACTION_SETTINGS));
- //用下面两种方式设置网络
- //startActivity(newIntent(android.provider.Settings.ACTION_WIFI_SETTINGS));
- //startActivity(newIntent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
- init();
- }
- /**
- *初始化实现
- */
- privatevoidinit(){
- text=(TextView)findViewById(R.id.waytext);
- /**获得系统级联网管理员对象*/
- ConnectivityManagermanager=(ConnectivityManager)this.getSystemService(CONNECTIVITY_SERVICE);
- NetworkInfoinfo=manager.getActiveNetworkInfo();
- if(info==null){//无网情况下
- //跳转到网络设置页面
- startActivity(newIntent(android.provider.Settings.ACTION_SETTINGS));
- }else{//有网情况下
- if(info.isAvailable()){//网络可用时
- /**是手机自带的联网方式*/
- if(info.getType()==ConnectivityManager.TYPE_MOBILE){
- if(info.getState()==State.CONNECTED){
- text.setText(String.valueOf("手机网络可用并已连接"+"\n"+"连接网络方式为:\n"+info.getType()+",MOBILE"));
- }
- /**WIFI联网方式*/
- }else{
- text.setText(String.valueOf("连接网络方式为:"+info.getType()+",WI-FI"));
- startActivity(newIntent(android.provider.Settings.ACTION_WIFI_SETTINGS));
- }
- }else{
- text.setText(String.valueOf("手机网络不可用"));
- }
- }
- }
- /**
- *临时写来练练的方法,大家可以跳过
- */
- privatevoidkkk(){
- Uriuri=Uri.parse("content://telephony/carriers");
- Cursorcr=getContentResolver().query(uri,null,null,null,null);
- while(cr!=null&&cr.moveToNext()){
- //APNid
- Stringid=cr.getString(cr.getColumnIndex("_id"));
- //APNname
- Stringapn=cr.getString(cr.getColumnIndex("apn"));
- //dootherthings...
- }
- }
- /**
- *移动或联通ctwapcmwap判断这个方法朋友们可根据自己的需要使用,小马
- *只是记在这个地方,供自己记录的,有需要的朋友可以交流讨论下..吼吼
- */
- @SuppressWarnings("unused")
- privatevoidinitWapState(){
- //ConnectivityManager:Classthatanswersqueriesaboutthestateofnetworkconnectivity.
- ConnectivityManagerconMan=(ConnectivityManager)
- getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfonetInfo=conMan.getActiveNetworkInfo();
- if(netInfo!=null){
- StringextraInfo=netInfo.getExtraInfo();//Reporttheextrainformationaboutthenetworkstate
- if(extraInfo!=null){
- if(extraInfo.equals("cmwap")){
- }elseif(extraInfo.equals("ctwap")||extraInfo.equals("#777")){
- }
- }
- }
- }
- }
WIFI控制类:
- packagecom.xiaoma.www;
- importjava.util.List;
- importandroid.content.Context;
- importandroid.net.wifi.ScanResult;
- importandroid.net.wifi.WifiConfiguration;
- importandroid.net.wifi.WifiInfo;
- importandroid.net.wifi.WifiManager;
- importandroid.net.wifi.WifiManager.WifiLock;
- /**
- *@Title:WifiCheckUtil.java
- *@Packagecom.lg.lvguo.util
- *@Description:WIFI控制类
- *@authorMZH
- *@versionFG1.0
- */
- publicclassWifiCheckUtil{
- //定义WifiManager对象
- privateWifiManagermWifiManager;
- //定义WifiInfo对象
- privateWifiInfomWifiInfo;
- //扫描出的网络连接列表
- privateList<ScanResult>mWifiList;
- //网络连接列表
- privateList<WifiConfiguration>mWifiConfiguration;
- //定义一个WifiLock
- WifiLockmWifiLock;
- //构造器
- publicWifiCheckUtil(Contextcontext)
- {
- //取得WifiManager对象
- mWifiManager=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
- //取得WifiInfo对象
- mWifiInfo=mWifiManager.getConnectionInfo();
- }
- //取到WIFI状态
- publicintcheckWifiState(){
- returnmWifiManager.getWifiState();
- }
- //打开WIFI
- publicvoidOpenWifi()
- {
- if(!mWifiManager.isWifiEnabled())
- {
- mWifiManager.setWifiEnabled(true);
- }
- }
- //关闭WIFI
- publicvoidCloseWifi()
- {
- if(!mWifiManager.isWifiEnabled())
- {
- mWifiManager.setWifiEnabled(false);
- }
- }
- //锁定WifiLock
- publicvoidAcquireWifiLock()
- {
- mWifiLock.acquire();
- }
- //解锁WifiLock
- publicvoidReleaseWifiLock()
- {
- //判断时候锁定
- if(mWifiLock.isHeld())
- {
- mWifiLock.acquire();
- }
- }
- //创建一个WifiLock
- publicvoidCreatWifiLock()
- {
- mWifiLock=mWifiManager.createWifiLock("Lock");
- }
- //得到配置好的网络
- publicList<WifiConfiguration>GetConfiguration()
- {
- returnmWifiConfiguration;
- }
- //指定配置好的网络进行连接
- publicvoidConnectConfiguration(intindex)
- {
- //索引大于配置好的网络索引返回
- if(index>mWifiConfiguration.size())
- {
- return;
- }
- //连接配置好的指定ID的网络
- mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,true);
- }
- publicvoidStartScan()
- {
- mWifiManager.startScan();
- //得到扫描结果
- mWifiList=mWifiManager.getScanResults();
- //得到配置好的网络连接
- mWifiConfiguration=mWifiManager.getConfiguredNetworks();
- }
- //得到网络列表
- publicList<ScanResult>GetWifiList()
- {
- returnmWifiList;
- }
- //查看扫描结果
- publicStringBuilderLookUpScan()
- {
- StringBuilderstringBuilder=newStringBuilder();
- for(inti=0;i<mWifiList.size();i++)
- {
- stringBuilder.append("Index_"+newInteger(i+1).toString()+":");
- //将ScanResult信息转换成一个字符串包
- //其中把包括:BSSID、SSID、capabilities、frequency、level
- stringBuilder.append((mWifiList.get(i)).toString());
- stringBuilder.append("/n");
- }
- returnstringBuilder;
- }
- //得到MAC地址
- publicStringGetMacAddress()
- {
- return(mWifiInfo==null)?"NULL":mWifiInfo.getMacAddress();
- }
- //得到接入点的BSSID
- publicStringGetBSSID()
- {
- return(mWifiInfo==null)?"NULL":mWifiInfo.getBSSID();
- }
- //得到IP地址
- publicintGetIPAddress()
- {
- return(mWifiInfo==null)?0:mWifiInfo.getIpAddress();
- }
- //得到连接的ID
- publicintGetNetworkId()
- {
- return(mWifiInfo==null)?0:mWifiInfo.getNetworkId();
- }
- //得到WifiInfo的所有信息包
- publicStringGetWifiInfo()
- {
- return(mWifiInfo==null)?"NULL":mWifiInfo.toString();
- }
- //添加一个网络并连接
- publicvoidAddNetwork(WifiConfigurationwcg)
- {
- intwcgID=mWifiManager.addNetwork(wcg);
- mWifiManager.enableNetwork(wcgID,true);
- }
- //断开指定ID的网络
- publicvoidDisconnectWifi(intnetId)
- {
- mWifiManager.disableNetwork(netId);
- mWifiManager.disconnect();
- }
- }
全局配置文件:
- <?xmlversion="1.0"encoding="utf-8"?>
- <manifestxmlns:android="http://schemas.android.com/apk/res/android"
- package="com.xiaoma.www"
- android:versionCode="1"
- android:versionName="1.0">
- <uses-sdkandroid:minSdkVersion="15"/>
- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name">
- <activity
- android:name=".JudgeNewWayDemoActivity"
- android:label="@string/app_name">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- </application>
- <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
- </manifest>
小DEMO源码小马放附件里面了,以备自己注意丢了,呵呵,有需要的朋友可下载下的,一起学!
更多相关文章
- 通过Android的okhttp接口访问网络接口
- LiveData+Retrofit 网络请求实战
- Android的Activity加载方式实例分析
- Android 开发艺术探索笔记(五) 之 Android 中的 IPC 方式
- Android 首选网络模式默认值的修改方法
- android学习小结3-各种控件使用方式DEMO
- Android桌面快捷方式那些事与那些坑
- Android中实现网络图片的获取
- android httpClient 支持HTTPS的访问方式