2011-09-03 119 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