我正在开发一个应用程序,它将显示来电的服务提供商(例如Vodaphone等)信息。
我用烤面包来赞美它。用下面的代码
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
PhoneStateListener callStateListener = new PhoneStateListener() {
public void onCallStateChanged(int state, String incomingNumber)
{
// TODO React to incoming call.
if(state==TelephonyManager.CALL_STATE_RINGING)
{
Toast.makeText(getApplicationContext(),finder.find(incomingNumber), Toast.LENGTH_LONG).show();
}
}
};
telephonyManager.listen(callStateListener,PhoneStateListener.LISTEN_CALL_STATE);
问题是烤面包片很少可见。我想让它可见直到用户没有收到呼叫为止(即直到电话响起,一旦收到接收的吐司就应该消失)。
我该怎么办。
我可以使用其他控件,例如对话框等吗?
谢谢
最佳答案
在处理程序线程中运行吐司,如下所示:
呼叫按钮的onclick尝试以下操作:
Button call = (Button) findViewById(R.id.call);
call.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//call the user function to make call
}
});
并在您的课程中添加以下方法:
private final Runnable mRunnable = new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(),finder.find(incomingNumber), Toast.LENGTH_LONG).show();
mHandler.postDelayed(mRunnable, 1000);
}
};
并在结束按钮或用户接听电话后取消您的吐司onclick
Button end= (Button) findViewById(R.id.end);
end.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//call the function to end the call if the other user dont receive
}
});
否则像你的函数一样使用:
if(state==TelephonyManager.CALL_STATE_RINGING)
{
mHandler.postDelayed(mRunnable, 1000);
}