2017-04-17 9 views
0

ContactsContract.CommonDataKinds.Phone.getTypeLabelを使用して、ユーザーの電話タイプの文字列を取得しています(1 - > home、2 - > mobile 、3 - >仕事など)。 ほとんどのデバイスですべて正常に動作するようですが、Motorolaデバイスでは、返される文字列は私がここで入力することもできない奇妙な文字です(韓国語/日本語/タイ語のように見えます)。これらのデバイスのロケールは英語であり、ユーザーはこれらの奇妙な文字列を理解することもできません。ContactsContract.CommonDataKinds.Phone.getTypeLabelは、Motorolaデバイスの変な文字列を返します。

私のコード前方ストレートです:接触の事前定義されたラベルを取得

return ContactsContract.CommonDataKinds.Phone.getTypeLabel(context.getResources(), type, "").toString(); 

答えて

0

はかなり直接的であるユーザーがカスタムラベルを設定している場合、しかし、それは直接ではありません、あなたはfollwingを試すことができます正しいラベルを取得するには:

int type = cursor.getInt(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)); 
      String label = context.getResources().getString(ContactsContract.CommonDataKinds.Phone.getTypeLabelResource(type)); 
      if (label.equalsIgnoreCase("Custom")){ 
       label = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.LABEL)); 
      } 

あなたは今、直接ラベル文字列を使用することができます。

関連する問題