来源:
listener = new PhoneStateListener()
{
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
Toast toast = Toast.makeText(getApplicationContext(), incomingNumber, Toast.LENGTH_LONG);
toast.show();
}
};
((TelephonyManager)getSystemService(TELEPHONY_SERVICE)).listen(listener , PhoneStateListener.LISTEN_CALL_STATE )
您好,
我正在使用此代码,android.permission.READ_PHONE_STATE
权限,以获取包括已启动呼叫号码在内的Toast消息。我的问题是,incomingNumber是空的,如果呼叫是传出或进入,吐司出现,但空是无关紧要。
我已经看到了一些解决方案,但解决方案是以完全不同的方式获取数字,我想知道我的代码是否可以满足我的需求。
谢谢你的建议,
亚当
答案 0 :(得分:2)
请在您的申请中加入许可。
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
if(state == TelephonyManager.CALL_STATE_RINGING){
Toast toast = Toast.makeText(getApplicationContext(), incomingNumber, Toast.LENGTH_LONG);
toast.show();
}
CALL_STATE_OFFHOOK
如果第一次调用则返回null。所以你应该使用CALL_STATE_RINGING
。
希望它会对你有帮助。