我正在尝试使用Java反射来访问CallManager并检测我总是让呼叫空闲的呼叫状态。请帮帮我。 顺便说一下,我使用以下代码访问CallManager:
try{
class classCallManager = class.forname("com.android.internal.telephony.CallManager");
Method methodGetInstance = classCallManager .getDeclaredMethod("getInstance");
methodGetInstance.setAccessible(true);
Object objectCallManager = methodGetInstance.invoke(null);
Method methodGetActiveFgCallState = classCallManager.getDeclaredMethod("getActiveFgCallState");
}catch (Exception e) {}
答案 0 :(得分:1)
我可以确认,不幸的是,即使尝试激活fg调用失败:返回值始终为false
val classCallManagerName = "com.android.internal.telephony.CallManager"
log log "get class name manager"
val classCallManager = Class.forName(classCallManagerName)
future {
var msec = 15000
val sleeptime = 500
while (
msec > 0
) {
log log "get method instance"
//getDeclaredMethod
val methodGetInstance = classCallManager.getMethod("getInstance")
log log "set method get instance accessible"
methodGetInstance.setAccessible(true)
log log "invoke get instance"
val objectCallManager = methodGetInstance.invoke(null) //null for static methods
log log "getMethod hasActiveFgCall"
//getActiveFgCallState
val hasActiveFgCall = classCallManager.getMethod("hasActiveFgCall")
log log "hasActiveFgCall setAccessible(true)"
hasActiveFgCall.setAccessible(true)
log log "has active fg call: " + hasActiveFgCall.invoke(objectCallManager)
Thread.sleep(sleeptime)
msec -= sleeptime
}
}
请注意代码在Scala中