首页 > 其他分享 >android 网络可用否,以及类型

android 网络可用否,以及类型

时间:2022-12-09 17:03:35浏览次数:36  
标签:return 可用 网络 DialogInterface manager dialog android public


在Android平台上开发基于网络的应用,必然需要去判断当前的网络连接情况。下面的代码,作为例子,详细说明了对于当前网络情况的判断。 先看一个自己定义的应用类。 view plaincopy to clipboardprint? 01.public class NetworkDetector { 02. 03. public static boolean detect(Activity act) { 04. 05. ConnectivityManager manager = (ConnectivityManager) act 06. .getApplicationContext().getSystemService( 07. Context.CONNECTIVITY_SERVICE); 08. 09. if (manager == null) { 10. return false; 11. } 12. 13. NetworkInfo networkinfo = manager.getActiveNetworkInfo(); 14. 15. if (networkinfo == null || !networkinfo.isAvailable()) { 16. return false; 17. } 18. 19. return true; 20. } 21.} public class NetworkDetector { public static boolean detect(Activity act) { ConnectivityManager manager = (ConnectivityManager) act .getApplicationContext().getSystemService( Context.CONNECTIVITY_SERVICE); if (manager == null) { return false; } NetworkInfo networkinfo = manager.getActiveNetworkInfo(); if (networkinfo == null || !networkinfo.isAvailable()) { return false; } return true; } } 这个类只有一个静态方法,用来检测当前系统的网络是否可用。如果可用,返回true。 还要进一步说明的是,NetworkInfo类中有一个方法getType(),这个方法可以用来判断当前可用的网络是wifi,还是mobile等等。 再来看使用的例子。 view plaincopy to clipboardprint? 01.boolean networkState = NetworkDetector.detect(XXXActivity.this); 02.if (!networkState) { 03. DialogUtil.openMsgDialog(XXXActivity.this, 04. android.R.drawable.ic_dialog_info, 05. “网络不可用,是否现在设置网络?”, android.R.string.ok, 06. android.R.string.cancel, 07. new DialogInterface.OnClickListener() { 08. @Override 09. public void onClick(DialogInterface dialog, int which) { 10. startActivityForResult(new Intent( 11. ACTION_WIRELESS_SETTINGS), 0); 12. } 13. }, new DialogInterface.OnClickListener() { 14. @Override 15. public void onClick(DialogInterface dialog, int which) { 16. dialog.cancel(); 17. } 18. }).show(); 19.} boolean networkState = NetworkDetector.detect(XXXActivity.this); if (!networkState) { DialogUtil.openMsgDialog(XXXActivity.this, android.R.drawable.ic_dialog_info, “网络不可用,是否现在设置网络?”, android.R.string.ok, android.R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { startActivityForResult(new Intent( ACTION_WIRELESS_SETTINGS), 0); } }, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }).show(); } 其中XXXActivity是我自己的Activity类,DialogUtil是我自己定义的Dialog应用类。这里的代码片段,是在判断没有网络的情况下,弹出dialog,提示用户是否进入系统的网络设置界面。 因为以上代码用到了权限,需要在AndroidManifest文件中加入如下权限代码:

标签:return,可用,网络,DialogInterface,manager,dialog,android,public
From: https://blog.51cto.com/u_15907753/5926279

相关文章

  • android 进程管理
    系统会对进程的重要性进行评估,并将重要性以“oom_adj”这个数值表示出来,赋予各个进程;(系统会根据“oom_adj”来判断需要结束哪些进程,一般来说,“oom_adj”的值越大,该进程被系......
  • android webView 文字、图片分别加载。乱码问题
     1.加载url前,设置图片阻塞1.webSettings.setBlockNetworkImage(true);2.加载完毕后,关闭图片阻塞1.publicvoidonPageFinished(WebViewview,Stringurl){2.......
  • Android Bitmap和Drawable
    一、相关概念1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的......
  • Android类库打包方法探究
    众所周知,Android应用使用ADT打包成apk,apk中包含了运行程序所需要的一切,包括:class、asset、res、AndroidManifest.xml等。而对于类库项目(libraryproject),ADT生成的jar......
  • android打开系统联系人界面
    在android应用程序的开发中,经常要实现的一个功能是调用系统自带的联系人界面,做到选择人之后,取得相应的名称和号码,并返回。android2.0前后实现方式上也有一定的差别:主要是2.0......
  • android静默安装探讨(申请加精)
     1)在网上搜寻该问题的解决方法,且查阅android开发文档,没有发现可以实现该功能的显示API调用,网络上很多人请教同样的问题,但都没有能够实现解答;说是android为了用户的安全,......
  • android之屏幕方向改变以及onConfigurationChanged事件
    注意:onConfigurationChanged事件并不是只有屏幕方向改变才可以触发,其他的一些系统设置改变也可以触发,比如打开或者隐藏键盘。当我们的屏幕方向发生改变时,就可以触发onConfig......
  • Android Studio工程目录结构分析(一)
    AndroidStudio工程目录我们这里以一个简单的HelloWorld工程来分析:1、.gradle和.idea     这两个目录下放置的都是AndroidStudio自动生成的一些文......
  • Android内存优化(使用SparseArray和ArrayMap代替HashMap)
    在Android开发时,我们使用的大部分都是Java的api,比如HashMap这个api,使用率非常高,但是对于Android这种对内存非常敏感的移动平台,很多时候使用一些java的api并不能达到更好的性......
  • Android内存优化——常见内存泄露及优化方案
    如果一个无用对象(不需要再使用的对象)仍然被其他对象持有引用,造成该对象无法被系统回收,以致该对象在堆中所占用的内存单元无法被释放而造成内存空间浪费,这中情况就是内存泄露......