как получить информацию о сети устройства?(Android) - PullRequest
1 голос
/ 05 августа 2011

приложение, над которым я сейчас работаю, зависит от мобильной сети, поэтому мой вопрос: возможно ли получить текущую мобильную сеть, которая используется на устройстве (например, 3 UK, T-Mobile)?

также, есть ли способ получить номер мобильного телефона пользователя?

спасибо за любую помощь (:

Ответы [ 3 ]

10 голосов
/ 05 августа 2011

Номер телефона:

        final TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
        final String phoneNumber = tm.getLine1Number();

Тип сети:

        // Check each connection type
        boolean connectionAvailable = false;
        ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);

        /**
         * WIFI
         */

        /** Check the connection **/
        NetworkInfo network = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        // Make sure the network is available
        if(network != null && network.isAvailable() && network.isConnectedOrConnecting()) {
            connectionAvailable = true;
        }

        /**
         * 2G/3G
         */            
        /** Check the connection **/
        network = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

        // Show the right icon
        if(network != null &&
                (network.getSubtype() == TelephonyManager.NETWORK_TYPE_GPRS ||
                 network.getSubtype() == TelephonyManager.NETWORK_TYPE_EDGE)) {
            // 2G
        }
        else {
            // 3G
        }

        // Make sure the network is available
        if(network.isAvailable() && network.isConnectedOrConnecting()) {
            connectionAvailable = true;
        }

        /**
         * 4G
         */

        /** Check the connection **/
        network = cm.getNetworkInfo(ConnectivityManager.TYPE_WIMAX);

        // Make sure the network is available
        if(network != null && network.isAvailable() && network.isConnectedOrConnecting()) {
            connectionAvailable = true;
        }
1 голос
/ 05 августа 2011

Все, что вы ищете, находится в TelephonyManager.Пример использования:

final TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
final String phoneNumber = tm.getLine1Number();
0 голосов
/ 05 августа 2011
if (this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    String msisdn = telephonyManager.getLine1Number();
    String carrier = telephonyManager.getNetworkOperatorName();
}
...