編輯:關於Android編程
今天接到一個新需求,要給服務器上送設備運營商名稱,之後我的第一反應是,umeng都無法精確統計運營商,我如何判斷上送具體的運營商呢?如下圖:
這張圖裡反映了友盟統計到用戶手機的運營商名稱,這些名稱什麼樣子的都有。有什麼辦法精確判斷具體是什麼運營商呢?比如,只返回“中國移動”,“中國聯通”,“中國電信”。
我這裡解決的方案是通過設備的MCC/MNC代碼來判斷。
首先,我們要了解MCC/MNC是什麼,請看WIKI百科。通過閱讀,我們能夠知道,只要對比MCC/MNC編碼,就能知道具體是什麼運營商了。
其次,就是具體代碼了,如下:
/**
* 返回運營商 需要加入權限
*
* @return 1,代表中國移動,2,代表中國聯通,3,代表中國電信,0,代表未知
* @author [email protected]
*/
public int getOperators(Context context) {
// 移動設備網絡代碼(英語:Mobile Network Code,MNC)是與移動設備國家代碼(Mobile Country Code,MCC)(也稱為“MCC /
// MNC”)相結合, 例如46000,前三位是MCC,後兩位是MNC 獲取手機服務商信息
int OperatorsName = 0;
String IMSI = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE).getSubscriberId();
// IMSI號前面3位460是國家,緊接著後面2位00 運營商代碼
System.out.println(IMSI);
if (IMSI.startsWith("46000") || IMSI.startsWith("46002") || IMSI.startsWith("46007")) {
OperatorsName = 1;
} else if (IMSI.startsWith("46001") || IMSI.startsWith("46006")) {
OperatorsName = 2;
} else if (IMSI.startsWith("46003") || IMSI.startsWith("46005")) {
OperatorsName = 3;
}
return OperatorsName;
}
通過客戶端本地比對MCC/MNC確定運營商這種方式,本身我是不贊同的,我認為把MCC/MNC上送到服務器,由服務器判斷這才是最優方案。因為應用打好包分發出去,代碼就是死的,未來不可以擴展比對,但是服務器是可以動態的,隨時配置比對的MCC/MNC編碼。
ToDoList(fragment) 詳解 版權所有, 禁止轉載, 如有需要, 請站內聯系. Fragment(碎片) 可以靈活
之前我們說到了關於IQ聊天軟件的局域網聊天測試,今天給大伙說說氣泡的生成和編碼,這不是第三方的東西,是自己 開發的,需要整合布局和容器來實現,其實當你看到源碼後,就會覺得
多線程下載文件的過程是:(1)首先獲得下載文件的長度,然後設置本地文件的長度。HttpURLConnection.getContentLength();//獲取下載文件的
ConversationFragment的布局:首先我們找到我們要寫的Fragment布局文件。 然後添加一個Listview用來顯示短