2015-07-04 84 views
-1

我想寫一個android應用程序,可以發送sb未接來電。這意味着應用程序調用約5秒。 我知道這段代碼開始調用。發送未接來電 - Android程序

private void call() { 

    try { 

     Intent callIntent = new Intent(Intent.ACTION_CALL); 

     callIntent.setData(Uri.parse("tel:123456789")); 

     startActivity(callIntent); 

    } catch (ActivityNotFoundException e) { 

     Log.e("helloandroid dialing example", "Call failed", e); 

    } 

} 

但我不知道如何阻止它(5秒後)?

Ps.This question has mark-mark because the question is stupid or my english is bad?

回答

0

沒有直接的方法來做到這一點,因爲一旦你啓動了callIntent,控件就會進入調用應用程序。

但是有一些解決方法可以通過使用java反射來獲取TelephonyManagerITelephony對象來實現此目的。

 TelephonyManager tm = (TelephonyManager) context 
      .getSystemService(Context.TELEPHONY_SERVICE); 
    try { 
      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){} 

     telephonyService.endCall(); 

源: call-control-in-android

相關問題