Android 仅在断开呼叫后获取警报对话框
我正在创建一个应用程序,我正在使用广播接收器获取号码,我正在努力开发 1) 当我接到电话和断开电话时,我可以在警报对话框中获取号码,它工作正常,但当我用手机拨打电话,然后我断开连接时,我也想获取带有号码的警报对话框,我不知道如何做以下是我的代码 问题 问题是..我只想在断开呼叫后打开警报对话框,它是传入的还是传出的 myoutgong.javaAndroid 仅在断开呼叫后获取警报对话框,android,android-broadcast,Android,Android Broadcast,我正在创建一个应用程序,我正在使用广播接收器获取号码,我正在努力开发 1) 当我接到电话和断开电话时,我可以在警报对话框中获取号码,它工作正常,但当我用手机拨打电话,然后我断开连接时,我也想获取带有号码的警报对话框,我不知道如何做以下是我的代码 问题 问题是..我只想在断开呼叫后打开警报对话框,它是传入的还是传出的 myoutgong.java public class OutgoingCallReceiver extends BroadcastReceiver { @Overr
public class OutgoingCallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
TelephonyManager.EXTRA_STATE_IDLE)) {
/* Bundle bundle = intent.getExtras();
if(null == bundle)
return;*/
String phonenumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
Intent i = new Intent(context, Disp_Alert_dialog.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("Number", phonenumber);
i.putExtra("type", "outgoing");
context.startActivity(i);
Log.i("OutgoingCallReceiver",phonenumber);
// Log.i("OutgoingCallReceiver",bundle.toString());
String info = "Outgoing number: " + phonenumber;
Toast.makeText(context, info, Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(context, "can you dig it suker", Toast.LENGTH_LONG).show();
}
}
}
MyIncoming.java
public class MyCallReceiver extends BroadcastReceiver {
private String incomingNumber;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
TelephonyManager.EXTRA_STATE_RINGING)) {
// get the phone number
incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
Intent i = new Intent(context, Disp_Alert_dialog.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("Number", incomingNumber);
i.putExtra("type", "incoming");
context.startActivity(i);
// Toast.makeText(context, "Call from:" +incomingNumber, Toast.LENGTH_LONG).show();
// This code will execute when the phone has an incoming call
} else {
// This code will execute when the call is disconnected
// Toast.makeText(context, "Detected call hangup event", Toast.LENGTH_LONG).show();
}
}
}
我的警报
public class Disp_Alert_dialog extends Activity{
private String nums;
private String outnum;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Intent iin= getIntent();
nums=iin.getStringExtra("Number");
Intent iii=getIntent();
outnum=iii.getStringExtra("outNumber");
// Toast.makeText(Disp_Alert_dialog.this, "Got it"+nums, Toast.LENGTH_LONG).show();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
if(nums==iin.getStringExtra("Number"))
{
Toast.makeText(Disp_Alert_dialog.this, "eba andre incoming", Toast.LENGTH_LONG).show();
builder.setTitle(nums);
}
else if(outnum==iii.getStringExtra("outNumber"))
{
Toast.makeText(Disp_Alert_dialog.this, "eba ander outgoing", Toast.LENGTH_LONG).show();
builder.setTitle(outnum);
}
builder
.setMessage("Want to add in CRM?\n"
+ "If this call was New Inquiry,\n"
+ "Follow up or complaint call,\n"
+ "please add this in crm")
.setCancelable(false)
.setPositiveButton("Add to CRM", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
Intent intent=new Intent(Disp_Alert_dialog.this,MainMenu.class);
intent.putExtra("Nums", nums);
startActivity(intent);
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
}
是,因为只有在来电时,
incomingNumber
才会出现。
在传出呼叫中获取号码的唯一方法是在呼叫结束后从呼叫日志中获取号码
[如何实现呼叫日志的ContentObserver]()可能需要查询呼叫日志内容提供商。对不起,我听不懂你的意思。我的问题很简单,我不想在警报对话框中获取呼入和呼出的电话号码…我不想要呼叫历史记录。我说我想在断开连接后在警报对话框中输入号码,或者我正在拨打电话并断开连接,或者我正在接听电话并断开连接。现在你得到了??看,可能是这样会帮你的我认为那行不通。你得到号码了吗?我想你不能那样得到。我在回答中告诉你的是我思考的唯一方式。参考答案中的链接。