当前位置:首页 » 安卓系统 » android获取网络状态

android获取网络状态

发布时间: 2022-07-15 15:39:30

Ⅰ Android如何获取网络连接状态及怎样调用网络配置界面

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class NetManager {
Context context;

public NetManager(Context context) {
this.context = context;
}

// 判断网络是否可用的方法
public boolean isOpenNetwork() {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
return false;
}

// 判断WIFI网络是否可用的方法
public boolean isOpenWifi() {
ConnectivityManager connManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return mWifi.isConnected();
}
}

public static void netManager(final Context a) {
netManager = new NetManager(a);

if (!netManager.isOpenNetwork()) {
// 如果网络不可用,则弹出对话框,对网络进行设置
Builder builder = new Builder(a);
builder.setTitle("没有可用的网络");
builder.setMessage("是否对网络进行设置?");
builder.setPositiveButton("确定",
new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = null;
try {

String sdkVersion = android.os.Build.VERSION.SDK;
if (Integer.valueOf(sdkVersion) > 10) {
intent = new Intent(
android.provider.Settings.ACTION_WIRELESS_SETTINGS);
} else {
intent = new Intent();
ComponentName comp = new ComponentName(
"com.android.settings",
"com.android.settings.WirelessSettings");
intent.setComponent(comp);
intent.setAction("android.intent.action.VIEW");
}
a.startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
});
builder.setNegativeButton("取消",
null);
builder.show();
}else {
Toast.makeText(a, "网络不给力,请确认您的网络连接", Toast.LENGTH_LONG).show();
}
}
转载,仅供参考。

Ⅱ Android 怎么获取手机网络信号问题

在我们有的时候需要可能需要自己写一个状态栏显示手机的的当前网络类似网络信号的问题这些需求先说说思路吧。
1.这个里面涉及一个核心的api :PhoneStateListener
让某个类继承PhoneStateListener 重写:onSignalStrengthsChanged 通过传入的SignalStrength getLevel()获取信号强度 判断网络是4G还是3G或者是2G 通过TelephoneManager getNetWorkType获取
关于显示移动信号显示就这几个方法,现在需要冬天更改因为手机变化的怎么做呢那么介绍另外一个API:SubscriptionManager

关于SubscriptionManager :
1.对象实例化: SubscriptionManager mSubscriptionManager = SubscriptionManager.from(Conrtext )返回一个实例对象
SubscriptionInfo sub0 = mSubscriptionManager.(0);

if(null != sub0) {
mPhoneStateListener = new Sim1SignalStrengthsListener(sub0.getSubscriptionId());
mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
}

Ⅲ android 怎么判断网络状态

获取android系统的连接服务可判断网络连接状态,代码如下
public class NetUtils{
public static boolean isNetworkConnected(Context context){
ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] infos = cm.getAllNetworkInfo();
for(NetworkInfo info:infos){
if(info.isAvailable()&&info.isConnected()){
return true;
}
}
return false;
}
}

NetworkInfo的isAvailable()和isConnected()有以下5种状态:
在WLAN设置界面
1,显示连接已保存,但标题栏没有,即没有实质连接上:isConnected()==false,isAvailable()=true
2,显示连接已保存,标题栏也有已连接上的图标:isConnected()==true,isAvailable()=true
3,选择不保存后:isConnected()==false,isAvailable()=true
4,选择连接,在正在获取IP地址时:isConnected()==false,isAvailable()=false
5,连接上后:isConnected()==true,isAvailable()=true

Ⅳ android 能判断当前网络是否连接,连接的是 wifi 还是 3g/4g

// 获取代表联网状态的NetWorkInfo对象 NetworkInfo networkInfo = connManager.getActiveNetworkInfo();
// 获取当前的网络连接是否可用 if (null == networkInfo){Toast.makeText(this, "当前的网络连接不可用", Toast.LENGTH_SHORT).show();
//当网络不可用时,跳转到网络设置页面 startActivityForResult(new Intent(
android.provider.Settings.ACTION_WIRELESS_SETTINGS), 1);} else {boolean available = networkInfo.isAvailable();
if (available){Log.i("通知", "当前的网络连接可用");
Toast.makeText(this, "当前的网络连接可用", Toast.LENGTH_SHORT).show();} else {Log.i("通知", "当前的网络连接不可用");
Toast.makeText(this, "当前的网络连接不可用", Toast.LENGTH_SHORT).show();}}State state = connManager.getNetworkInfo(
ConnectivityManager.TYPE_MOBILE).getState();
if (State.CONNECTED == state){Log.i("通知", "GPRS网络已连接");
Toast.makeText(this, "GPRS网络已连接", Toast.LENGTH_SHORT).show();}state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
.getState();
if (State.CONNECTED == state){Log.i("通知", "WIFI网络已连接");
Toast.makeText(this, "WIFI网络已连接", Toast.LENGTH_SHORT).show();}//// 跳转到无线网络设置界面
// startActivity(new
// Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
//// 跳转到无限wifi网络设置界面
// startActivity(new
// Intent(android.provider.Settings.ACTION_WIFI_SETTINGS)); }也可以:
privatevoid testConnectivityManager(){ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
//mobile 3G Network State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
Log.d(mobile.toString());
//wifi Network State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
Log.d(wifi.toString());
//如果3G网络和wifi网络都未连接,且不是处于正在连接状态 则进入Network Setting界面 由用户配置网络连接if(mobile==State.CONNECTED||mobile==State.CONNECTING)return;if(wifi==State.CONNECTED||wifi==State.CONNECTING)return;startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));//进入无线网络配置界面
//startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); //进入手机中的wifi网络设置界面 }

Ⅳ android怎样获取网络速度

Android应用里经常使用到网络速度的显示,特别是文件下载和视频缓冲的时候。用到的是TrafficStats类,就是每隔一段时间去读取网速:

java">privatevoidshowNetSpeed(){

longnowTotalRxBytes=getTotalRxBytes();
longnowTimeStamp=System.currentTimeMillis();
longspeed=((nowTotalRxBytes-lastTotalRxBytes)*1000/(nowTimeStamp-lastTimeStamp));//毫秒转换

lastTimeStamp=nowTimeStamp;
lastTotalRxBytes=nowTotalRxBytes;

Messagemsg=mHandler.obtainMessage();
msg.what=100;
msg.obj=String.valueOf(speed)+"kb/s";

mHandler.sendMessage(msg);//更新界面
}

Ⅵ android判断移动网络是否打开

Android 判断网络状态这一应用技巧在实际应中是比较重要的。那么,在Android操作系统中,如何能够正确的判断我们所连接的网络是否断开:
public class ConnectionChangeReceiver extends
BroadcastReceiver
{
@Override
public void onReceive( Context context, Intent intent )
{
ConnectivityManager connectivityManager =
(ConnectivityManager) context.getSystemService
( Context.CONNECTIVITY_SERVICE );
NetworkInfo activeNetInfo = connectivityManager.
getActiveNetworkInfo();
NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo
( ConnectivityManager.TYPE_MOBILE );
if ( activeNetInfo != null )
{
Toast.makeText( context, "Active Network Type : " +
activeNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show();
}
if( mobNetInfo != null )
{
Toast.makeText( context, "Mobile Network Type : " +
mobNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show();
}
}
}
< !-- Needed to check when the network connection changes -->
< uses-permission android:name="android.permission.
ACCESS_NETWORK_STATE"/>
< receiver android:name="com.blackboard.androidtest.
receiver.ConnectionChangeReceiver"
android:label="NetworkConnection">
< intent-filter>
< action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
< /intent-filter>
< /receiver>

Ⅶ Android系列之如何判断网络链接状态

下面咱们讨论下Android手机判断网络链接状态的技术实现吧
目前Android操作系统的手机大部分支持WIFI,
GSM,3G网络通信
,但是每次链接到网络时只能选择一种链接方式,
比如运营商定制的,还必须要求特定的网络环境(CMWAP,CTWAP等)如果要切换网络还需要先关闭现有的网络,
然后再启动新的网络,这个转换过程还需要一定的时间,
可能程序这时还需要知道心的网络是否链接成功后自动登录到新的网络服务器中,
也许用一个线程去监听网络状态是否链接成功;
我们可以用另外一种方法,PhoneStateListener
没错,你没看错,就是用PhoneStateListener。
很多应用PhoneStateListener都是监听来电去电,PhoneStateListener还可以监听网络断开、
正在连接和连接成功。
=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
2mTelephonyMgr.listen(newPhoneStateListener(){
3
4@Override
(intstate){
6switch(state){
7caseTelephonyManager.DATA_DISCONNECTED://网络断开
8break;
9caseTelephonyManager.DATA_CONNECTING://网络正在连接
10break;
11caseTelephonyManager.DATA_CONNECTED://网络连接上
12break;
13}14}1516}PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);
我们只要重载onDataConnectionStateChanged方法,根据state判断做相应的处理。

Ⅷ android 怎么监控网络状态可以访问互联网而不是连接状态

在开发android应用时,涉及到要进行网络访问,时常需要进行网络状态的检查,以提供给用户必要的提醒。一般可以通过ConnectivityManager来完成该工作。
ConnectivityManager有四个主要任务:
1、监听手机网络状态(包括GPRS,WIFI, UMTS等)
2、手机状态发生改变时,发送广播
3、当一个网络连接失败时进行故障切换
4、为应用程序提供可以获取可用网络的高精度和粗糙的状态
当我们要在程序中监听网络状态时,只要一下几个步骤即可:
1、定义一个Receiver重载其中的onReceive函数,在其中完成所需要的功能,如根据WIFI和GPRS是否断开来改变空间的外观
复制代码 代码如下:

connectionReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {
Log.i(TAG, "unconnect");
// unconnect network
}else {
// connect network
}
}
};

2、在适当的地方注册Receiver,可以在程序中注册,在onCreate中调用如下函数即可:
复制代码 代码如下:

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(connectionReceiver, intentFilter);

3、在适当时取消注册Receiver,可以在程序中取消,在onDestroye中调用如下函数即可:
复制代码 代码如下:

if (connectionReceiver != null) {
unregisterReceiver(connectionReceiver);
}

热点内容
cvr网络存储 发布:2025-01-24 17:24:52 浏览:415
腿套压缩袜 发布:2025-01-24 17:05:16 浏览:458
电脑如何将安卓软件卸载干净 发布:2025-01-24 17:03:06 浏览:489
hello密码怎么破解 发布:2025-01-24 17:03:06 浏览:73
pspfifa无缓存 发布:2025-01-24 16:45:13 浏览:165
androidhandler机制 发布:2025-01-24 16:41:10 浏览:936
安卓系统如何下载aov 发布:2025-01-24 16:29:53 浏览:573
iptables允许ip访问 发布:2025-01-24 16:19:58 浏览:932
安卓80如何识别存储卡权限 发布:2025-01-24 16:19:54 浏览:232
存储介质价格 发布:2025-01-24 16:19:18 浏览:151