开源中国客户端笔记记录

1、判断是否联网

	public boolean isNetworkConnected() {
		ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo ni = cm.getActiveNetworkInfo();
		return ni != null && ni.isConnectedOrConnecting();
	}

2、判断网络类型

	/**
	 * 获取当前网络类型
	 * @return 0:没有网络   1:WIFI网络   2:WAP网络    3:NET网络
	 */
	public int getNetworkType() {
		int netType = 0;
		ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
		if (networkInfo == null) {
			return netType;
		}
		int nType = networkInfo.getType();
		if (nType == ConnectivityManager.TYPE_MOBILE) {
			String extraInfo = networkInfo.getExtraInfo();
			if(!StringUtils.isEmpty(extraInfo)){
				if (extraInfo.toLowerCase().equals("cmnet")) {
					netType = NETTYPE_CMNET;
				} else {
					netType = NETTYPE_CMWAP;
				}
			}
		} else if (nType == ConnectivityManager.TYPE_WIFI) {
			netType = NETTYPE_WIFI;
		}
		return netType;
	}
	

3、对比手机版本

	/**
	 * 判断当前版本是否兼容目标版本的方法
	 * @param VersionCode
	 * @return
	 */
	public static boolean isMethodsCompat(int VersionCode) {
		int currentVersion = android.os.Build.VERSION.SDK_INT;
		return currentVersion >= VersionCode;
	}

4、App安装包信息

/**
	 * 获取App安装包信息
	 * @return
	 */
	public PackageInfo getPackageInfo() {
		PackageInfo info = null;
		try {
			info = getPackageManager().getPackageInfo(getPackageName(), 0);
		} catch (NameNotFoundException e) {
			e.printStackTrace(System.err);
		}
		if(info == null) info = new PackageInfo();
		return info;
	}

5、储存应用基本信息

	public Properties get() {
		FileInputStream fis = null;
		Properties props = new Properties();
		try{
			//读取files目录下的config
			//fis = activity.openFileInput(APP_CONFIG);

			//读取app_config目录下的config
			File dirConf = mContext.getDir(APP_CONFIG, Context.MODE_PRIVATE);
			fis = new FileInputStream(dirConf.getPath() + File.separator + APP_CONFIG);

			props.load(fis);
		}catch(Exception e){
		}finally{
			try {
				fis.close();
			} catch (Exception e) {}
		}
		return props;
	}

	private void setProps(Properties p) {
		FileOutputStream fos = null;
		try{
			//把config建在files目录下
			//fos = activity.openFileOutput(APP_CONFIG, Context.MODE_PRIVATE);

			//把config建在(自定义)app_config的目录下
			File dirConf = mContext.getDir(APP_CONFIG, Context.MODE_PRIVATE);
			File conf = new File(dirConf, APP_CONFIG);
			fos = new FileOutputStream(conf);

			p.store(fos, null);
			fos.flush();
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try {
				fos.close();
			} catch (Exception e) {}
		}
	}

6、读取手机及应用相关信息

	String versionName = getPackageManager().getPackageInfo(
					getPackageName(), 0).versionName;
			int versionCode = getPackageManager().getPackageInfo(
					getPackageName(), 0).versionCode;
			String VERSION = android.os.Build.VERSION.RELEASE;// 系统版本
			String MODEL = android.os.Build.MODEL;// 手机型号
			textView.setText("versionName" + versionName + "\n" + "versionCode"
					+ versionCode + "\n" + "系统版本" + VERSION + "\n" + "手机型号"
					+ MODEL);
时间: 2024-10-10 11:59:27

开源中国客户端笔记记录的相关文章

开源中国客户端侧滑菜单效果实现

欢迎关注左上角Android技术分享公众号(小红人). 这篇文章将记录一些关于DrawerLayout的基本用法,我想关于DrawerLayout的用法也许有不少不够了解,这也是比较正常的事情,因为DrawerLayout作为Android组件是Google后来在android中添加的,在android.support.v4包下. 这里用开源中国手机客户端的截图来说明一下,这个DrawerLayout抽屉式布局是什么样子的. 好,大家已经看到了,当我们手指在屏幕左侧向右滑动时候,就会有一个抽屉式

开源中国iOS客户端学习

开源中国iOS客户端学习 续写前言 <开源中国iOS客户端学习>续写前系列博客    http://blog.csdn.net/column/details/xfzl-kykhd.html 开源中国iOS客户端学习——序 说到这款开源软件就得提到她的娘家了--开源中国社区: 开源中国社区简介:开源中国 www.oschina.net 成立于2008年8月,是目前中国最大的开源技术社区.传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现.使用.并交流开源技术的平台.目前开源中国社区已收

使用calabash测试开源中国Android客户端

Calabash-android是支持android的UI自动化测试框架,前面已经介绍过<中文Win7下成功安装calabash-android步骤>,这篇博文尝试测试一个真实应用:开源中国客户端.目的是和大家一起学习calabash测试工具. 测试环境与源码准备 先介绍一下oschina.net oschina除了有网站,还有三大平台手机客户端: http://www.oschina.net/app 客户端已经开源! 那么开源可以用来做什么呢? 我正在学用calabash-android,得

开源中国 OsChina Android 客户端源码分析(8)数据库Sqlite

1开源中国客户端使用的数据库部分的源码在net.oschina.app.db包下,两个类一个是用于管理数据库的创建类DatabaseHelper,继承SQLiteOpenHelper,另一个是用于数据库的增删改查的工具类NoteDatabase.那么数据库在开源中国源码中哪一模块用到了呢? 便签管理,便签是什么?就是一个记事本的功能o(^▽^)o 2关于SQLiteOpenHelper的使用,自己之前的项目中没有用到过,看了下,这里有个体会:当获取到SQLiteOpenHelper实例,并使用g

开源中国源码学习(五)——切换皮肤(日间模式和夜间模式)

在开源中国客户端源码的侧滑菜单栏里有一个模式切换的选项,可以完成夜间模式和日间模式的相互转换. 一.功能介绍 在侧滑菜单栏里点击日间或者夜间后,客户端的皮肤可以发生变化,来达到保护眼睛的作用. 二.详细介绍 这是在MainActivity的onCreate方法中的一段代码,这段代码完成了读取本地配置中存储的日间模式和夜间模式信息,从而回显到客户端中. 读取本地配置信息,在应用启动时,回显至客户端 @Override protected void onCreate(Bundle savedInst

开源中国社区 iPhone 客户端项目学习笔记

注:本文假设你已经有xcode4或以上的开发环境 (建议 Xcode 4.3) 直接用双击 oschina.xcodeproj 文件启动 xcode 即可 本项目采用 GPL 授权协议,欢迎大家在这个基础上进行改进,并与大家分享. 下面将简单的解析下项目: 1.AFNetwork --- 通用网络库2.GCDiscreetNotificationView --- 顶部弹出并会自动消失的通知栏3.Thread --- 后台线程对象,处理后台发送带图片的动弹4.SoftwareGroup --- 所

开源中国安卓客户端源码之自定义控件---ScreenShotView

首先,感谢开源中国的开源精神.当初学者拿到客户端源码时,可能会对其中的项目结构和代码产生许多困惑,不知道该从何下手,当然我也是其中一员,接触安卓时间不长,也不是很精通,但是通过一段时间的琢磨,慢慢地领会到其中的一些编程方法,我只是想把我弄明白的这些知识通过博客的形式记录下来,以备以后查看,当然也可以帮助到更多的初学者.我的主要工作是给代码添加注释,理顺调用关系,让初学者更快.更深刻地理解代码的含义,领会其精神.首先大家从http://git.oschina.net/oschina/android

开源中国安卓客户端源码学习(一) 渐变启动界面

开源中国安卓客户端源码学习(一) 准备学习安卓开发, 看到网上有人推荐开源中国安卓客户端的源码, 说里面包含了大部分技术, 于是准备好好研究研究. 特开通此系列博客来记录学习过程. 由于是在学习, 经验不足, 里面肯定有很多不对的地方, 望大家指正. 到这里下载源码包,开发环境为Linux下Eclipse,导入源码后有可能会出现android.webkit.CacheManager找不到的错误, 原因是这个类在4.0以上版本的SDK被删除了, 只要下载4.0版本的SDK使用即可. 由于googl

oschina开源中国的Git服务学习笔记

Github虽然流行,但是由于网络原因访问困难,代码的同步速度也很让人纠结. 幸好oschina(开源中国)也提供了安全可靠的git版本服务,今天就来感受(折腾)oschina的git服务. (由于是从有道云笔记直接拷贝过来的,导致图片全部显示不出来,分享连接:http://note.youdao.com/share/?id=97ffdee8693f82b05ec89bd09360fe46&type=note ) 注册oschina https://git.oschina.net/signup