Android 判断手机是否联网时异常闪退

写了个函数来判断手机是否联网,但是发现,在手机联网状态下一切正常,而当手机断网时则会发现闪退。

首先第一反应是会不会是没在AndroidManifest.xml文件中设置联网权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> 

发现有这段语句,那么是在哪里出错呢,我最初的代码是这样的:

    /**判断网络是否可用
     * @param context
     * @return
     */
    public static boolean isNetworkAvailable(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        return cm.getActiveNetworkInfo().isAvailable();
    }

经过调试,发现当我断网状态下,我在cm.getActiveNetworkInfo()中返回的NetworkInfo实例是个空指针,此时调用isAvailable()发生错误。所以要对NetworkInfo实例进行判断。

    public static boolean isNetworkAvailable(Context context) {
    	try {
			ConnectivityManager manger = (ConnectivityManager) context
	                .getSystemService(Context.CONNECTIVITY_SERVICE);
	        NetworkInfo info = manger.getActiveNetworkInfo();
	        //return (info!=null && info.isConnected());//
	        if(info != null){
	        	return info.isConnected();
	        }else{
	        	return false;
	        }
		} catch (Exception e) {
	        return false;
		}
    }
时间: 2024-11-07 07:17:07

Android 判断手机是否联网时异常闪退的相关文章

android判断手机是否root

关于判断手机是否已经root的方法.如果app有一些特殊功能需要root权限,则需要判断是否root.比如一些市场下载完app后自动安装. /** * @author Kevin Kowalewski * */ public class Root { private static String LOG_TAG = Root.class.getName(); public boolean isDeviceRooted() { if (checkRootMethod1()){return true;

使用eclips开发java时的闪退问题

最近开始android的开发学习,当然要先从java入手了.我选择eclips作为开发的IDE,在测试java代码样例时,如果我的代码是可以出现系统自动代码补齐时eclips就会立刻闪退. 刚开始不知道怎么回事以为是自己不小心误操作吧界面给关了,可是发生了好几次.之后通过shell把eclips启动,这时可以看到eclips闪退时的log: [email protected]:~/android/eclipse$ ./eclipse ## A fatal error has been detec

android app调试没问题,但打包签名的apk,运行时出现闪退怎么办?

在用Eclipse编写Android app时,有时调试时没有问题,但一经打包签名,运行就出现闪退,还报错说找不到某某类.一开始以为是混淆导致的,后来我没有混淆竟然也还是这个问题.无奈只得网上寻找解决方案,最终还是有人解决了的,方法也很简单,只需按照下面几步来就可以了: 1.找到Project -> Build Automatically,取消它关闭自动编译2.然后Clean一下3.最后在手动Build一下 然后你再打包签名,这样就可以正常运行了.

【走过巨坑】android studio对于jni调用及运行闪退无法加载库的问题解决方案

相信很多小伙伴都在android开发中遇到调用jni的各种巨坑,因为我们不得不在很多地方用到第三方库so文件,然而第三方官方通常都只会给出ADT环境下的集成方式,而谷歌亲儿子android studio默认采用的却是gradle方式,与ADT编辑的方式大不相同,那再andorid studio中如何导入so文件呢? 在android studio 中我们可能会用到jar包和so文件的方式,对于jar包可能接触更多,只需要我们把工程转换为project显示方式,打开app下的libs文件夹,导入即

c和c++写控制台程序时出现闪退的情况

在用c和c++写控制台应用程序时,很多时候会遇到闪退的情况,比如用vs2013或者其他的编译工具,一般的处理方式有以下两种: 1.在main()函数中,return之前写下 system("pause");//表示暂停 2.非调试状态下运行,直接按按Ctrl+F5:如果按F5调试的话,就会出现一闪而过的情况,但该方法不适用于生成的exe文件; 3. 给程序加一个任务,即定义一个内联函数 inline void keep_window_open(char ch;cin>>ch

Ios平台游戏异常闪退问题之get_numerous_trampoline排查记录

案件回放: 打开游戏,进行上线前的检查,在检测功能的时候,莫名其妙的就崩溃,闪退了......立即重新拉起游戏,准备简单的重现之后找研发来修复,发现不能必现了.这个时候去提单也太Low了---找到研发问了下,本身的应用是否有做crash异常上报.(目前这一块的Open Source框架比较多,我就不在此累赘复述了)直接查看上一次的crash异常上报信息,结合symbol 信息还原堆栈信息. 案件侦测: 查看还原后的堆栈信息,有一处信息为: 发现最终导致该起"凶案"的罪犯应该是跟Mono

oracle10g在通过Enterprise Manager Console 连接数据库时出现闪退

在win7 64位旗舰版上安装oracle 10数据库服务端.客户端,通过Enterprise Manager Console 连接数据库时输入后用户名和口令后,点击确认时会出现闪退 解决办法:(1)右键以管理员省份运行Enterprise Manager Console (2)右键属性--点击兼容性,选择以xp模式运行

mysql5.1 command line client 登录时出现闪退

因为长时间没有使用mysql command line client.今天在使用时,打开界面,输入密码后就出现了闪退,同时workbench平台也显示不能连接数据库.首先我照着百度试了一下,发觉在"计算机"-->"管理"(右键)-->"服务"下,没有找到mysql有关的服务. 解决办法如下: (1)打开cmd窗口,把路径调整到mysql command line client 的bin 文件下,即输入:cd C:\Program Fi

Android学习之APP点击功能闪退问题的处理一

java代码如下: activity_main.xml代码如下: APP测试问题:安装好APP后,点击"点击事件",APP会闪退 检查方向: 1.查看java代码中的成员变量textview是否初始化 2.查看java代码中的onTextViewClick(View view)方法是否传入了形参(View view) 原文地址:https://www.cnblogs.com/hh8888-log/p/9762257.html