2011年 的存档
20117 月22

买虾

和朋友去超市买虾,问售货员有没有新鲜的,售货员说这虾没死只是在冬眠,然后问我们买多少?我对朋友说咱们走吧,不打扰它们休息了。。。当时我看到售货员表情非常凝重。。。

20117 月21

我能吃你么

虎:我能吃你么? 兔:你没吃过兔子么?虎:今天妈妈不在家…… 兔:那你以前吃什么?虎:…… 兔:大点声!虎:吃奶~

20117 月20

脑筋急转弯

某会委员发言:“上海是全世界的上海,上海的房价应该和国际接轨。我觉得80后男孩子如果买不起房子,80后女孩子可以嫁给40岁的男人。 80后的男人如果有条件了,到40岁再娶20岁的女孩子也是不错的选择。”
【2楼】回复: 我终于到40岁了,找到一个年轻貌美的20岁女友 去她家见家长。开门的是当年读大学时相处了几年的初恋女友 新女友喊了一声:妈~
【3楼】补充:她妈看到我,惊得倒吸一口冷气。没等我反应过来,然后把女儿拉进房间里,对女儿说“你不能和他在一起,他是你亲生父亲啊!”
【4楼】继续补充: 女儿:我已经有了他的骨肉……
【5楼】 这时女孩的60多岁的父亲走出来看见了女孩的男友,小声的对他说:“你怎么来了,给你妈和你的生活费不是每月都按时打去的吗?
【6楼】这时”叮咚”,女孩男友的妈来见亲家,见到女孩的父亲:”怎么是你…”
【7楼】女孩男友的父亲停完车也上楼了,一见女孩的父亲马上泪流满面:”你不就是我失散多年的弟弟吗?”
【8楼】女孩母亲见到男友母亲:”妈!”
【9楼】女孩母亲见到男友他爸,叫了一声“爹!”,立刻晕厥过去
请问——
1、你能理解到几楼?
2、男友他妈的妈见到女友他妈的爸叫什么?

20117 月19

程序员最讨厌康熙的哪个儿子

问:程序员最讨厌康熙的哪个儿子。答:胤禩。因为他是八阿哥(bug)。

20117 月19

壁虎

一壁虎误入鳄鱼池,丧命之时,壁虎急中生智,一把抱住鳄鱼大叫:“妈妈!”鳄鱼一愣,立刻老泪纵横:“孩子,都瘦成这样了,别再上班了!放假休息下吧。”

20117 月17

想到结婚

“我见到她之前,从未想到要结婚;我娶了她几十年,从未后悔娶她,也从未想过要娶别的女人”——钱钟书

20117 月15

Android 开发:APN网络切换之CMNET

最近被Android系统的APN自动切换网络问题折腾死了,软件使用CMNET网络,而系统自带的一些软件必须使用CMWAP,或者手机厂家搞的一些后台服务或者流氓软件总是在切换网络。没办法,只好想个解决之道了。

我的解决方案是:
1、在程序启动时,注册 Receiver 监视网络状态,当网络发生变化判断不是CMNET时则切换网络;
2、为了保险起见,在每个HTTP链接请求前加上网络判断。

本软件主要实现了功能如下:
拍照、定位、表单文件上传、查询、短信拦截(用于通过短信指令获得手机当前位置)、拨打电话、定时自动上传定位数据、版本更新等。

如下粘贴APN网络判断网站代码:
1、NetworkChangeReceiver  网络状态监视

package com.wiz.receiver;

import com.wiz.tools.NetCheck;
import com.wiz.tools.StringUtils;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;

public class NetworkChangeReceiver  extends BroadcastReceiver {
	NetCheck netCheck=new NetCheck();
	 public void onReceive(Context context, Intent intent) {
		 Log.e("NetworkChangeReceiver", "onReceive");
		 ConnectivityManager conManager= (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 

        if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {
            NetworkInfo info = conManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
            String apn = StringUtils.null2String(info.getExtraInfo());
            if (!"cmnet".equals(apn.toLowerCase())) {
            	netCheck.checkNetworkInfo(context);
            }
        }
    }
}

2、Activity 中注册 NetworkChangeReceiver

NetworkChangeReceiver ncr = new NetworkChangeReceiver();
IntentFilter upIntentFilter = new IntentFilter( ConnectivityManager.CONNECTIVITY_ACTION);
this.registerReceiver(ncr, upIntentFilter);// 网络状态监控

3、APN判断及网络切换

package com.wiz.tools;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.util.Log;

public class NetCheck {
	public static final Uri APN_URI = Uri.parse("content://telephony/carriers");
	public static final Uri CURRENT_APN_URI = Uri
			.parse("content://telephony/carriers/preferapn");
	public static String getCurrentAPNFromSetting(ContentResolver resolver) {
        Cursor cursor = null;
        try {
            cursor = resolver.query(CURRENT_APN_URI, null, null, null, null);
            String curApnId = null;
            String apnName1=null;
            if (cursor != null && cursor.moveToFirst()) {
                curApnId = cursor.getString(cursor.getColumnIndex("_id"));
                apnName1 = cursor.getString(cursor.getColumnIndex("apn"));
            }
            cursor.close();
            Log.e("NetCheck getCurrentAPNFromSetting","curApnId:"+curApnId+" apnName1:"+apnName1);
            //find apn name from apn list
            if (curApnId != null) {
                cursor = resolver.query(APN_URI, null, " _id = ?", new String[]{curApnId}, null);
                if (cursor != null && cursor.moveToFirst()) {
                    String apnName = cursor.getString(cursor.getColumnIndex("apn"));
                    return apnName;
                }
            } 

        } catch (SQLException e) {
            Log.e("NetCheck getCurrentAPNFromSetting",e.getMessage());
        } finally {
            if (cursor != null) {
                cursor.close();
            }
        } 

        return null;
}
	public static int updateCurrentAPN(ContentResolver resolver, String newAPN) {
        Cursor cursor = null;
        try {
            //get new apn id from list
            cursor = resolver.query(APN_URI, null, " apn = ? and current = 1", new String[]{newAPN.toLowerCase()}, null);
            String apnId = null;
            if (cursor != null && cursor.moveToFirst()) {
                apnId = cursor.getString(cursor.getColumnIndex("_id"));
            }
            cursor.close();
            Log.e("NetCheck updateCurrentAPN","apnId:"+apnId);
            //set new apn id as chosen one
            if (apnId != null) {
                ContentValues values = new ContentValues();
                values.put("apn_id", apnId);
                resolver.update(CURRENT_APN_URI, values, null, null);
            } else {
                //apn id not found, return 0.
                return 0;
            }
        } catch (SQLException e) {
        	Log.e("NetCheck updateCurrentAPN",e.getMessage());
        } finally {
            if (cursor != null) {
                cursor.close();
            }
        } 

        //update success
        return 1;
} 

	public boolean checkNetworkInfo(Context c) {
		boolean ret=false;
		ConnectivityManager conManager= (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo info = conManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
		boolean internet=conManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
        String oldAPN = StringUtils.null2String(info.getExtraInfo());
        String oldSQLAPN=StringUtils.null2String(getCurrentAPNFromSetting(c.getContentResolver()));

        Log.e("NetCheck checkNetworkInfo","oldAPN:"+oldAPN+" oldSQLAPN:"+oldSQLAPN);
        if (internet==false||!"cmnet".equals(oldAPN.toLowerCase())||!"cmnet".equals(oldSQLAPN.toLowerCase())) {
            if("cmwap".equals(oldAPN.toLowerCase())&&"cmnet".equals(oldSQLAPN.toLowerCase())){
            	updateCurrentAPN(c.getContentResolver(), "cmwap");
            	try {
					Thread.sleep(200);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
            }
            updateCurrentAPN(c.getContentResolver(), "cmnet");
            try {
				Thread.sleep(200);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
            ret=true;
        }
        return ret; 

	}
}

4、HTTP请求前的判断

if (nc.checkNetworkInfo(LoginActivity.this)) {
				Thread.sleep(5000);// 设置cmnet网络
			}

本文原创,转载请注明来源 wizzer.cn。

20117 月15

IT人

九点睡是村里人,十点睡是厂里人,十一点睡是校内人,十二点睡是官府人,一点睡是IT人,两点睡是IT人,三点睡是IT人,四点睡是IT人,五点睡是IT人,六点睡是IT人,总是睡不够的还是IT人。

20117 月13

航空哭的一塌糊涂

走出机场的时候,航空哭的一塌糊涂。人们都目瞪口呆的看着这么一个漂亮的男孩子哭的梨花带雨。高铁不顾旁人的眼光,一把揽过他,凶狠狠的说“再哭我就当众吻你。”航空哭的更厉害了:“准点好难,我们不能同时到北京啦!”“笨蛋,就知道你晚点,我开到中间就停电啦!”(via@陈少宇_GRE_GMAT )

20117 月9

一块

公司里,发现一女同事的QQ签名写道:“你五毛我五毛,那么咱俩就能一块了!” 我看后赞叹不已,觉得这个签名很经典。 突然,另一女同事说:“你六毛我六毛咱俩就能一块2了!” 紧接着,又有一女同事说:“你七毛我七毛,咱俩就能一块死了!” 汗,一个比一个经典啊!!

20117 月8

老师再见!

新生入学不久的时候,有个小孩第一次来办公室,告完状还挺有礼貌的跟我说:老师再见!我说:办公室这么多老师呢!你得说老师们再见。孩子愣了半天,然后冲我说:老师再见!然后走到门边,对着门说:门,再见!

20117 月8

骑自行车

给女朋友发短信“你喜欢骑自行车吗?” 半分钟后她回“你很在乎这个吗?那分手吧”。。。

20117 月5

房奴进行时

刚付完首付,定下了房子,进入房奴时代。。

目前处于房奴初级阶段,一屁股债,现在吃饭都成问题,

最近蹭了1、2、3——6个人N顿饭,额……快发工资吧

20116 月29

用智能机的都是好男人

曾经有个女孩子问我:“我做你女朋友跟你在一起,你会经常一夜不归宿吗?你要怎么证明?”我告诉她:“我不会,因为用iphone和android手机一定是好男人,一定不会夜不归宿。因为晚上都要回家充电。”

20116 月29

裸婚时代

一老师说:裸婚时代的那句:我没车,没钱,没房,没钻戒,但我有一颗陪你到老的心。其不靠谱程度类似于:虽然我没看书,没上课,没复习,没做题,但我有一颗不挂科的心。对于爱情最大的误解,在于以为它是万能的。

20116 月29

打卡

昨天参加了个大学同学聚会,饭局在下午六点开始,有一位同学说在加班,按规定晚上九点才能下班,我们就以为他估计赶不上了。然后他竟然准时来了!我们问他请假了么? 他说:没请假,把公司的打卡机带来了,待会儿九点的时候在饭店找个插座就可以打卡下班。(糗百)

20116 月28

一外国小伙参加中国相亲节目

一外国小伙参加中国相亲节目。 女:婚后住哪?有房吗?答:和奶奶、爸爸、后妈一起住,房是上世纪的。 10盏灯灭。 女:你干啥的?你爸哪单位? 答:我是大兵,我爸没单位。 8盏灯灭。 女:结婚有宝马?答:马车行吗? 灯全灭。 主持人:你来自哪,叫什么?小伙羞愧答:英国,别人叫我威廉王子。

20116 月26

江城子·郭美美事件

@特立独行的月子曰:十年捐款两茫茫,不思量,自难忘,玉树汶川,善款贪官藏。纵使西南又大旱,五千万,赈灾荒。屁民慷慨解钱囊,贪官猖,二奶狂,玛莎兰博,善款买车爽,百兆捐款入私囊,红十字,黑心肠。

20116 月24

手机上的应用程序,你用了多少个?

有人说手机装那么多应用,真正用得上的没几个。我把我手机里的应用列出来,看看用得上的是不是真的没几个

20116 月23

期末评语怎么写

楼主:一学生,成绩年年倒数第一,常与人打架,按领导要求老师想给学生好听一点的期末评语,怎么写啊?

暴强回复:该生成绩稳定,动手能力强。