我知道如何使用意图从我的应用程序拨打电话,但会显示Android拨号UI。有没有可能在没有显示Android拨号UI并在我的应用程序显示时在后台运行电话的情况下这样做?
答案 0 :(得分:1)
首先制作一个服务,然后准备一个标志来检查来电是否来自您自己的应用。 现在,如果来电,服务将找到它,如果该标志为真,则启动您的活动。
public class OutgoingCallReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
//check the flag
if(GlobalDefinitions.IsProgramRunning) {
//open your activity immediately after a call
Intent intent1 = new Intent(context, YOURACTIVITY.class);
intent1.setFlags(FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
GlobalDefinitions.IsProgramRunning=false;
}
}
致电:
public static void Call( Context context, String phoneNumber) {
if (!phoneNumber.equals("") ) {
GlobalDefinitions.IsProgramRunning=true;
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse("tel:" + phoneNumber));
context.startActivity(intent);
}
}
不要忘记将权限和服务添加到清单
<receiver android:name=".services.OutgoingCallReceiver">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
答案 1 :(得分:0)
您可以请求权限SYSTEM_ALERT_WINDOW
(http://developer.android.com/reference/android/Manifest.permission.html#SYSTEM_ALERT_WINDOW)
允许您显示带有&#34;始终在顶部&#34;将在通话屏幕上显示的行为。
Facebook
将此权限用于聊天头功能。
答案 2 :(得分:0)
不,这绝对不可能,而且有充分的理由。如果没有用户的知识,你就不应该拨打电话。
答案 3 :(得分:-2)
来电不显示在手机后台