使用 if 语句检查这 2-3 行中的变量是否为空,如果是则停止执行代码,例如
尝试 { TelephonyManager tMgr=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); if(tMgr!=null) thisPhoneNumber = tMgr.getLine1Number(); } 导管(异常 o){}
或者您可以尝试查找设备是平板电脑还是手机(手机或非手机设备),然后在 if code if(phone) { the code} 中执行两个不同的语句,或者您可以使用抽象类和函数查找电话号码并做一些想像
if(device is phone)
{
apstractClass=new phoneImplementation();
} else
{
apstractClass= new nonPhoneImplementation();if (((TelephonyManager)getContext().getSystemService(Context.TELEPHONY_SERVICE)).getLine1Number()
== null)
{ // 没有电话 } enter code here
} thisPhoneNumber=apstarctClass.getPhoneNumber()
其中 phoneImplementation().getPhoneNumber() 将包含您的代码,问题中的代码和 nonPhoneImplementation().getPhoneNumber() 将返回 0
如果设备具有电话功能,您可以检查此
if (((TelephonyManager)getContext().getSystemService(Context.TELEPHONY_SERVICE)).getLine1Number()
== null)
{
// no phone
}
我的观点是,这将解决您的问题:
String thisPhoneNumber = "0";
try
{
if (((TelephonyManager)getContext().getSystemService(Context.TELEPHONY_SERVICE)).getLine1Number()
!= null)
{
thisPhoneNumber = tMgr.getLine1Number();
} }
catch(Exception o)
{}