2017-04-17 49 views
0

我使用ContactsContract.CommonDataKinds.Phone.getTypeLabel獲取用戶的電話類型的字符串(1 - > home,2 - > mobile ,3 - >工作等)。 在大多數設備上,一切似乎都能正常工作,但在摩托羅拉設備上,返回的字符串是一些奇怪的字符,我甚至無法在此鍵入(看起來像韓文/日文/泰文)。這些設備的語言環境是英語,用戶也無法理解那些奇怪的字符串。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)); 
      } 

現在你可以直接使用標籤字符串。