2016-03-22 2 views
0

У меня есть 7inch samsung Tab 4. У нее есть сотовая сеть только для Интернета, но у нее нет функции телефона. Я создал приложение, чтобы проверить, есть ли функция телефона. Все вкладки/Телефоны работают с этим условием, за исключением вкладки, которая имеет только услугу передачи данных, но не телефонную службу.Проверьте, нет ли у устройства сотовой сети

Как проверить это:

PackageManager pm = this.getPackageManager(); 
if (pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) 
{ 
    //PHONE DEVICE 
} 
else 
{ 
    //TAB Device 
} 

Как решить эту проблему, если не позвонит функции. Дай мне знать!

Спасибо!

ответ

1

Попробуйте под кодом, это может вам помочь.

if (((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE)).getPhoneType() 
      == TelephonyManager.PHONE_TYPE_NONE || ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE)).getLine1Number() 
      == null) { 
     // No Phone 
     // Do as per your need 
    } else { 
     PackageManager pm = this.getPackageManager(); 
     if (pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) { 
      //PHONE DEVICE 
     } else { 
      //TAB Device 
     } 
    } 

Для этого потребуется разрешение READ_PHONE_STATE.

0

Чтобы проверить, является ли устройство телефоном, оно должно быть способным к передаче голоса. У TelephonyManager есть метод для явного получения этого значения isVoiceCapable(). Это может быть определена следующим образом:

TelephonyManager tm = 
    (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
if(tm.isVoiceCapable()) { 
    // PHONE 
} else { 
    // TABLET 
} 

Если TelephonyManager не голос способен, то это не телефон, но это могут быть данные, способные. Более подробную информацию можно найти here.