Android Open Source - callerid-for-android Country Detector






From Project

Back to project page callerid-for-android.

License

The source code is released under:

GNU General Public License

If you think the Android project callerid-for-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.integralblue.callerid.inject;
// w ww .jav  a  2s. co  m
import java.util.Locale;

import com.google.inject.Inject;

import android.telephony.TelephonyManager;
import android.text.TextUtils;

public class CountryDetector {
  @Inject TelephonyManager telephonyManager;
  
  /** Get the device's current country's 2 letter ISO code
   * @return
   */
  public String getCountry(){
    String result;
        result = getNetworkBasedCountry();
        if (result == null) {
            result = getSimBasedCountry();
        }
        if (result == null) {
            result = getLocaleCountry();
        }
        if(result!=null) result = result.toUpperCase(); //ISO country codes are always uppercase
        return result;
  }
  
    /**
     * @return the country from the mobile network.
     */
    protected String getNetworkBasedCountry() {
        String countryIso = null;
        // TODO: The document says the result may be unreliable on CDMA networks. Shall we use
        // it on CDMA phone? We may test the Android primarily used countries.
        if (telephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM) {
            countryIso = telephonyManager.getNetworkCountryIso();
            if (!TextUtils.isEmpty(countryIso)) {
                return countryIso;
            }
        }
        return null;
    }
    
    /**
     * @return the country from SIM card
     */
    protected String getSimBasedCountry() {
        String countryIso = null;
        countryIso = telephonyManager.getSimCountryIso();
        if (!TextUtils.isEmpty(countryIso)) {
            return countryIso;
        }
        return null;
    }

    /**
     * @return the country from the system's locale.
     */
    protected String getLocaleCountry() {
        Locale defaultLocale = Locale.getDefault();
        if (defaultLocale != null) {
            return defaultLocale.getCountry();
        } else {
            return null;
        }
    }

}




Java Source Code List

com.blundell.tut.LoaderImageView.java
com.integralblue.callerid.CallerIDApplication.java
com.integralblue.callerid.CallerIDBroadcastReceiver.java
com.integralblue.callerid.CallerIDLookup.java
com.integralblue.callerid.CallerIDResult.java
com.integralblue.callerid.CallerIDService.java
com.integralblue.callerid.GeocoderAsyncTask.java
com.integralblue.callerid.HttpCallerIDLookup.java
com.integralblue.callerid.LookupAsyncTask.java
com.integralblue.callerid.LookupFragment.java
com.integralblue.callerid.MainActivity.java
com.integralblue.callerid.PreferencesActivity.java
com.integralblue.callerid.RecentCallsFragment.java
com.integralblue.callerid.SpecialPhoneNumbers.java
com.integralblue.callerid.TabsAdapter.java
com.integralblue.callerid.contacts.ContactsHelper.java
com.integralblue.callerid.contacts.NewContactsHelper.java
com.integralblue.callerid.contacts.OldContactsHelper.java
com.integralblue.callerid.geocoder.AndroidGeocoder.java
com.integralblue.callerid.geocoder.Geocoder.java
com.integralblue.callerid.geocoder.NominatimGeocoder.java
com.integralblue.callerid.inject.CallerIDModule.java
com.integralblue.callerid.inject.ContactsHelperProvider.java
com.integralblue.callerid.inject.CountryDetector.java
com.integralblue.callerid.inject.GeocoderHelperProvider.java
com.integralblue.callerid.inject.PreferencesNameProvider.java
com.integralblue.callerid.inject.RestTemplateProvider.java
com.integralblue.callerid.inject.TextToSpeechHelper.java
com.integralblue.callerid.inject.VersionInformationHelper.java
com.integralblue.callerid.widget.DontPressWithParentImageView.java
com.squareup.okhttp.OkHttpURLStreamHandlerFactory.java
com.squareup.okhttp.internal.OkHttpClientHandler.java