2011-09-03 55 views
0

此問題僅與德國SIM卡提供商有關。你能運行下面的代碼並在這裏發佈答案嗎? (請服從大寫和小寫)。Android:德國SIM卡用戶:getSimOperatorName()測試

package com.testing.sim; 


import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.telephony.TelephonyManager; 
import android.widget.TextView; 

public class testSim extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     TextView tv = (TextView) findViewById(R.id.mytext); 

     TelephonyManager tMgr =(TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE); 
     tv.setText(tMgr.getSimOperatorName()); 
    } 
} 

非常感謝!越多的答案越好,如果你看到相同的字符串發佈只是添加評論,我也是這樣的。

+0

爲什麼不使用[getSimCountryIso()](https://developer.android.com/reference/android/telephony/TelephonyManager.html#getSimCountryIso())? – Julian

+0

,因爲我需要的是運營商而不是國家 – AndyAndroid

回答

1

我在美國,但如果你真的需要確定的載體,這將是更好地使用TelephonyManager.getSimOperator()然後在這裏仰望mccmnc:http://en.wikipedia.org/wiki/Mobile_Network_Code和硬編碼在您的應用程序,

if (telMan.getSimOperator().equals("26201")) { 
//respond appropriately 
} 

不知道它是否重要,但如果您試圖識別運營商,那將是最具體和最確定的方式。

+0

不錯的主意,但它不會顯示在所有經銷商的wikipage上。我想他們在正常品牌下運行。他們呢?例如。 Aldi Talk是E-Plus的經銷商,現在應該展示Aldi Talk還是E-Plus?如果E-Plus在名單上並且Aldi Talk不是,我需要知道這是Aldi Talk。 E-Plus不足以知道。 – AndyAndroid

+0

我不知道......在美國,我不相信經銷商擁有那麼多Android用戶,所以我不知道這是否值得全力以赴。無論如何,我唯一的猜測就是打電話給他們問問。在美國,sim卡具有ICCID和IMSI,AT&T的前6位數字相同:310410.因此,如果他們的SIMS上有IMSI,那麼他們可能都會以mccmnc開頭。我爲att工作,順便說一句。這就是爲什麼我知道這一點。升級網絡上的網絡技術(CDMA/UMTS到LTE)可能會改變mccmnc,不確定 – Jakar

+0

儘管我真的懷疑客戶服務會知道你的意思。但是,如果你告訴他們IMSI的事情,他們也許可以弄清楚。 – Jakar