2013-04-08 82 views
2

我们使用Android应用程序进行一些评估,当评估者到达现场时,他们需要在通话中与办公室一起登录。这是一个参考编号,我真的希望能够保持在电话显示屏上。在拨打电话的同时将手机通话屏幕推到背景

什么是完美的是一个对话框,它说拨号屏幕上的数字。

我试过这样做,但它只是超过对话框并显示调用屏幕。有没有办法将拨号程序推到背景并继续向用户显示对话框?

继承人是我到目前为止有:

public void makecall(View view){ 
    try { 
     Intent callIntent = new Intent(Intent.ACTION_CALL); 
     callIntent.setData(Uri.parse("tel:NUMBER")); 
     startActivity(callIntent); 
     Toast.makeText(getApplicationContext(), "TEST",Toast.LENGTH_LONG).show(); 
     AlertDialog.Builder adb = new AlertDialog.Builder(this); 
     adb.setTitle("Alert"); 
     adb.setMessage("Client Reference Blah Blah"); 
     adb.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 

      } 
     }); 
     adb.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       dialog.cancel(); 
      } 
     }); 
     adb.show();   
    } catch (ActivityNotFoundException activityException) { 
     Throwable e = null; 
     Log.e("helloandroid dialing example", "Callfailed", e); 
    } 
} 
+0

对不起 - 有人修改了我的编辑格式。 – TMB87 2013-04-08 13:25:38

回答

4

我认为你需要使用一个活动来显示呼叫屏幕上的东西的顶部。一个对话框将不起作用,因为您从该活动中显示了您已发布的内容,但是一旦您启动了呼叫意图,此活动就不再处于堆栈顶部。

在这里看到了答案:Android - How to display a dialog over a native screen?

你如何风格你的(新)的活动,看起来像一个对话框,虽然,这将给你相同的视觉效果你是后。

一旦你创建一个使用在这个问题中所示的参数的新活动,那么你可以在启动callIntent

public void makecall(View view){ 
    try { 
     Intent callIntent = new Intent(Intent.ACTION_CALL); 
     callIntent.setData(Uri.parse("tel:NUMBER")); 
     startActivity(callIntent); 
     Toast.makeText(this, "TEST",Toast.LENGTH_LONG).show(); 

     Runnable showDialogRun = new Runnable() { 
      public void run(){ 
       Intent showDialogIntent = new Intent(this, DialogActivity.class); 
       startActivity(showDialogIntent); 
      } 
     }; 
     Handler h = new Handler(); 
     h.postDelayed(showDialogRun, 2000); 
    } catch (ActivityNotFoundException activityException) { 
     Throwable e = null; 
     Log.e("helloandroid dialing example", "Callfailed", e); 
    } 
} 

通过一两秒钟,似乎使其更加延迟对话框startActivity后startActivity启动可能实际上在手机屏幕上飞溅。

+0

嗨,谢谢你。我已经尝试了其他位置上的建议并完成了上面的代码,但是它仍然加载了通话屏幕后面的对话框,然后当我结束通话时显示对话框 – TMB87 2013-04-08 13:42:54

+0

Tis a galaxy galaxy s3 – TMB87 2013-04-08 13:44:44

+0

这就是我的行为看起来像 – TMB87 2013-04-08 13:45:00