[英]Phone call in background of my android app
我知道如何使用意圖從我的應用程序撥打電話,但會顯示Android撥號UI。 有沒有可能在沒有顯示Android撥號UI並在我的應用程序顯示時在后台運行電話的情況下執行此操作?
首先制作一個服務然后准備一個標志來檢查來電是來自你自己的應用程序。 現在,如果來電,服務將找到它,如果該標志為真,則啟動您的活動。
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" />
您可以請求權限SYSTEM_ALERT_WINDOW
( http://developer.android.com/reference/android/Manifest.permission.html#SYSTEM_ALERT_WINDOW )
這允許您顯示具有“始終在線”行為的屏幕,該行為將顯示在通話屏幕上。
Facebook
將此權限用於聊天頭功能。
不,這絕對不可能,而且有充分的理由。 在沒有用戶知識的情況下,您永遠不應該撥打電話。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.