2013-05-07 1 views
0

Я пытаюсь начать работу с телефоном Android (Intent.ACTION_CALL) с ограничением по времени (активность будет работать только в течение ограниченного времени, например, всего 10 секунд). Есть ли способ сделать это или мне нужно создать свою собственную деятельность по вызову?Начать новую активность с ограничением по времени

// Решение Мое решение было создать услугу, которые имеют исходящего вызова Приемник, как в http://www.codeproject.com/Articles/548416/Detecting-incoming-and-outgoing-phone-calls-on-And

В приемнике я есть методу

try { 
     String serviceManagerName = "android.os.ServiceManager"; 
     String serviceManagerNativeName = "android.os.ServiceManagerNative"; 
     String telephonyName = "com.android.internal.telephony.ITelephony"; 

     Class<?> telephonyClass; 
     Class<?> telephonyStubClass; 
     Class<?> serviceManagerClass; 
     Class<?> serviceManagerNativeClass; 
     Method telephonyEndCall; 
     // Method getService; 
     Object telephonyObject; 
     Object serviceManagerObject; 

     telephonyClass = Class.forName(telephonyName); 
     telephonyStubClass = telephonyClass.getClasses()[0]; 
     serviceManagerClass = Class.forName(serviceManagerName); 
     serviceManagerNativeClass = Class.forName(serviceManagerNativeName); 

     Method getService = // getDefaults[29]; 
       serviceManagerClass.getMethod("getService", String.class); 

     Method tempInterfaceMethod = serviceManagerNativeClass.getMethod(
       "asInterface", IBinder.class); 

     Binder tmpBinder = new Binder(); 
     tmpBinder.attachInterface(null, "fake"); 

     serviceManagerObject = tempInterfaceMethod.invoke(null, tmpBinder); 
     IBinder retbinder = (IBinder) getService.invoke(serviceManagerObject, "phone"); 
     Method serviceMethod = telephonyStubClass.getMethod("asInterface", IBinder.class); 

     telephonyObject = serviceMethod.invoke(null, retbinder); 
     telephonyEndCall = telephonyClass.getMethod("endCall"); 

     telephonyEndCall.invoke(telephonyObject); 

    } catch (Exception e) { 
     e.printStackTrace(); 
} 
+0

Что вы подразумевали под нагрузкой со сроком? –

ответ

2

Вы должны использовать Будильник и использовать telephonyService.endCall() до завершения звонка