2

次のスニペットを使用してキャリア名を取得できます。

TelephonyManager telephonyManager = ((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE));
String operatorName = telephonyManager.getNetworkOperatorName();

それは本当にうまくいきます。

次のスニペットを使用して、着信番号を取得することもできます。

private final PhoneStateListener phoneStateListener = new PhoneStateListener() {

    @Override
    public void onCallStateChanged(int state, String incomingNumber) {
        String callState = "UNKNOWN";
        switch (state) {
            case TelephonyManager.CALL_STATE_RINGING:
        }
    }
}

着信番号のキャリア名/サービスプロバイダー名を知りたい。どうすればそれを達成できますか?
たとえば国など、着信番号の場所を取得することは可能ですか?

4

3 に答える 3

3

Android APIでも、携帯電話番号の携帯電話会社名を取得することはできません。少なくとも、それほど簡単ではありません(そして、プライバシー関連の問題に陥る可能性があります)。

詳細については、この記事をお読みください。

http://sms411.net/2006/07/finding-out-someones-carrier/

もちろん、(プレフィックスを使用して)元のキャリアを見つけることもできますが、実際のキャリアとは異なる場合があります...

于 2012-10-01T08:32:04.293 に答える
2

プログラムで発呼者の運送業者の詳細を取得することはできません。また、番号ポータビリティのため、発信者の電話番号から携帯通信会社の名前を取得することはできません。ただし、番号の最初の数桁から国情報を取得できます。詳細については、国のコーリングコードのリストを参照してください。

于 2012-10-01T08:30:58.490 に答える
0

APIレベル22(Andrid 5.1)からこのAPIが利用可能です。

SubscriptionManager subscriptionManager = (SubscriptionManager)getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);

List<SubscriptionInfo> subscriptionInfoList = subscriptionManager.getActiveSubscriptionInfoList();

if (subscriptionInfoList != null && subscriptionInfoList.size() > 0) {
    for (SubscriptionInfo info : subscriptionInfoList) {
        String carrierName = info.getCarrierName().toString();
        String mobileNo = info.getNumber();
        String countyIso = info.getCountryIso();
        int dataRoaming = info.getDataRoaming();
    }
}
于 2016-10-10T08:38:03.030 に答える