我希望在拨打电话时在Android Native Phone应用程序顶部显示一个对话框。 我可以创建对话框,但它在电话应用程序的顶部不可见。
我试过了: 建议见:Android, how to bring a Task to the foreground?
在清单文件中设置了以下内容
<activity
android:name=".DialogActivity"
android:excludeFromRecents="true"
android:label="@string/title_activity_dialog"
android:launchMode="singleTop"
android:taskAffinity=""
android:theme="@android:style/Theme.Dialog" >
</activity>
电话状态监听器:
public void onCallStateChanged (int state, String incomingNumber)
{
if(TelephonyManager.CALL_STATE_RINGING == state) {
Log.i("PHONESTATE","RINGING");
//Incoming call handling
}
if(TelephonyManager.CALL_STATE_OFFHOOK == state) {
Log.i("PHONESTATE","OFFHOOK" + context.toString());
Intent in = new Intent(context, DialogActivity.class);
in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
in.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
in.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
context.startActivity(in);
}
if(TelephonyManager.CALL_STATE_IDLE == state) {
//Device back to normal state (not in a call)
Log.i("PHONESTATE","IDLE");
}
}
请您指导一下实现我想要的方法。 在此先感谢:)
答案 0 :(得分:1)
试试这个
Intent intent=new Intent(this,DialogActivity.class);
intent.setFlag(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
答案 1 :(得分:0)
@感谢Praveen的建议! 没有显示Dialog的原因是,当我在手机监听器中获得OFF_HOOK状态时,我试图创建意图。意图是在PhoneApp之前推出的。
诀窍是在开始活动之前放置一个Thread.Sleep(2000)
,假设手机应用程序将在手机状态变为OFF_HOOK之后的2秒内启动;
如果有更好的方法,请告诉我。