一个很简单的拨打电话的问题,却出现了特别奇怪的现象。
String phoneNum;
phoneNum = "0800123123"
callBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNum));
startActivityForResult(intent,0);
AppLockManager.getInstance().getCurrentAppLock().disable();
}
});
就这么一段简单的代码。没有任何问题。
由于是个台湾的项目,要用台湾的设备测试, 然后就搞了一个台湾的国民品牌HTC : 机型是M8 ,系统为 android 6.0 , HTC Sense 版本 7.0
然后神奇的事情就发生了— —没有反应。。。
我debug之后发现方法执行了,但是就是没有反应。
后来发现如果电话号码不是已0开头也没有问题。。。
换了一台三星设备 一切正常。。。
之后我又换了一个方法
String phoneNum;
phoneNum = "0800123123"
callBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phoneNum));
startActivityForResult(intent,0);
AppLockManager.getInstance().getCurrentAppLock().disable();
}
});
这个方法倒是有反应了,但是打开拨号界面之后不能返回程序,一按返回就直接回到主页面,而且在点击程序图标还是到拨号页面。。。。
而且上述两个过程完全不报错
这他妈就尴尬了。。。
估计是手机本身系统定制的问题。。。
当然了最后用了一个解决办法
callBtn.setAutoLinkMask(Linkify.PHONE_NUMBERS);
callBtn.setMovementMethod(LinkMovementMethod.getInstance());
用html调用电话功能的方式。。。可以解决