如何在Android中掛斷電話?我正在開發(fā)一個應用程序,其中我們需要的一件事是控制傳出呼叫,至少能夠從我們的應用程序中阻止它。我嘗試過使用Intent.ACTION_CALL現(xiàn)有的活動:Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber)); startActivity(callIntent);但是通過API似乎不允許停止呼叫。你能建議一些解決方法嗎?例如:在通話期間啟用飛機模式?只是一個例子; 這個黑客對我不起作用。
3 回答

慕容森
TA貢獻1853條經(jīng)驗 獲得超18個贊
BroadcastReceiver
已經(jīng)提到了在a中捕獲撥出呼叫,如果你想在撥號之前結束通話,這絕對是最好的方法。
但是,一旦撥號或通話,該技術就不再適用。我到目前為止掛斷的唯一方法是通過Java Reflection完成。由于它不是公共API的一部分,因此您應該小心使用它,而不是依賴它。對Android內(nèi)部組成的任何更改都將有效地破壞您的應用程序。
Prasanta Paul的博客演示了如何實現(xiàn)它,我在下面總結了這一點。
獲取ITelephony
對象:
TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE);try { // Java reflection to gain access to TelephonyManager's // ITelephony getter Log.v(TAG, "Get getTeleService..."); Class c = Class.forName(tm.getClass().getName()); Method m = c.getDeclaredMethod("getITelephony"); m.setAccessible(true); com.android.internal.telephony.ITelephony telephonyService = (ITelephony) m.invoke(tm);} catch (Exception e) { e.printStackTrace(); Log.e(TAG, "FATAL ERROR: could not connect to telephony subsystem"); Log.e(TAG, "Exception object: " + e);}
結束通話:
telephonyService.endCall();

慕雪6442864
TA貢獻1812條經(jīng)驗 獲得超5個贊
創(chuàng)建
BroadcastReceiver
優(yōu)先級為0的。在BC中攔截
ACTION_NEW_OUTGOING_CALL
其onReceive
方法的意圖setResultData(null)
用同樣的方法打電話
這將阻止調用啟動(只要您的接收者是最后一個處理我認為的意圖)
- 3 回答
- 0 關注
- 1025 瀏覽
添加回答
舉報
0/150
提交
取消