当android设备有卡处于接听/拨号状态时,系统都会发送广播。
TelephonyRegistry.java会通过broadcastCallStateChanged()来发送通话状态变化广播。
如需判断具体哪个卡槽,可通过如下办法获取phoneid;
1、首先在AndroidManifest.xml中声明权限"android.permission.READ_PHONE_STATE"
2、接受这个action广播"android.intent.action.SUBSCRIPTION_PHONE_STATE",接听或拨号时都会接受到此广播。
3、最后,获取intent传过来的的"slot"这个key值,可以获取到phoneid,即代表具体哪个卡槽处于通话状态,0是卡1,1是卡2
网友评论