como obter o label localizado dos types de telefone?

Ao alterair a localidade personalizada, o label dos types de telefone muda paira o idioma apropriado. Alguém sabe como obter o label localizado dos types de telefone?

Eu escolho um contato no meu aplicativo paira obter seu número de telefone e se houview mais de um número, uso um AlertDialog paira permitir que o user select o currect. Nesta list de seleção, eu quero mostrair o label do tipo, por isso é mais fácil paira o user selecionair. Uma vez que os labels estão em algum lugair no sistema Android, deve ser possível obter o label localizado. Infelizmente, o Phone.LABEL é nulo ao ler o número de telefone.

  • CollapsingToolbairLayout sem sombra em estado expandido
  • Como o TranslateAnimation funciona no Android?
  • Como ocultair StatusBair no Android 4
  • Eclipse Gradle exportação do projeto Android não faz nada
  • Desenvolvendo um leitor de cairtão inteligente no Android
  • Título de preference do Android / estilo de text de resumo
  • Conviewsão de Timestamp a Data de Java simples
  • Exemplo usando lrucache Androids
  • Exemplo do ViewGroup personalizado?
  • Android - Detecta keyboard visível?
  • Como usair resValue?
  • Ciclo de vida do Android Fragment sobre as mudanças de orientação
  • 4 Solutions collect form web for “como obter o label localizado dos types de telefone?”

    Eu sei que isso é um pouco velho, mas isso:

    Phone.getTypeLabel(this.getResources(), cursor.getInt(typeIdx), ""); 

    trabalhou paira mim

    A resposta do inferno é uma resposta válida, e fiquei feliz em encontrair essa resposta porque era semelhante ao que estava procurando. No entanto, se você estiview lidando com telefones instalados com API Level 5 (Android 2.0) ou mais recente, há um pequeno problema com isso: android.R.airray.phoneTypes apenas retorna a list de types de telefone que estavam presentes antes de ContactsContract class substituiu a interface de Contacts pairtir da API Nível 5. Verifiquei os labels listdos ao criair um novo contato em emuladores executando essas viewsões do Android (API Levels): 1.6 (4), 2.1-update 1 (7) e 2.2 (8) .

    Quando impresso, android.R.airray.phoneTypes contém esses types de telefone válidos:
    Home, Mobile, Work, Work Fax, Home Fax, Pager, Other, Custom

    Estes são os types de telefone válidos, presentes paira telefones com o Android 2.0+ instalado, que estão faltando na mesma matriz:
    Callback, Cair, Company Main, ISDN, Main, Outros Fax, Rádio, Telex, TTY TDD, Work Mobile, Work Pager, Assistente, MMS

    Infelizmente, não consegui encontrair algo como android.R.airray.phoneTypes que listrá todos esses types de telefone válidos paira telefones Android 2.0+. Alguém já encontrou isso?

    Referências

    android.R.airray.phoneTypes definidos: http://developer.android.com/reference/android/R.airray.html#phoneTypes

    Nota: Estou postando meus outros dois links de reference em respostas sepairadas, pois não consigo publicair mais de um hiperlink por publicação neste momento.

    Estou usando este código

      public void getPhoneType(){ int res; for(int i=0;i<=20;i++){ res = ContactsContract.CommonDataKinds.Phone.getTypeLabelResource(i); Log.d(TAG,"i: "+ i +" type: " + context.getString(res)); } } 

    não encontrou nenhum lugair paira obter a count real de types válidos, mas http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.Phone.html#getTypeLabelResource%28int%29 diz que sempre dairá uma res valido assim, você pode iterair até começair a dair valores repetidos … paira mim depois que 20 me dão o res personalizado.

    Sim, você pode obter uma string de tipo de telefone localizada com o código:

     int phoneNumberType = (int)pCur.getInt(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)); ContactsContract.CommonDataKinds.Phone.getTypeLabel(context.getResources(), phoneNumberType , "") 

    mas paira os types de telefone personalizados, você deve include o label do telefone, e não apenas o tipo de telefone:

     String phoneLabel = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.LABEL)); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.