我想知道如何在 android 设备上检测传入的视频通话?实际上有很多关于检测来电的文档,但我找不到任何关于在 android 中检测来电的本地视频呼叫的信息?
我找到了三星的源代码Phone.apk
并找到了这个方法localConnection.getCall().isVideoCall()
或this.mPhone.getForegroundCall().isVideoCall()
检测 VideoCall 但这个方法需要导入com.android.internal.telephony.*
,这对于第三方应用程序是不允许的。
我认为调用这些类需要使用反射。
那么你可以让我知道这件事吗?
对不起,我英语说得不太好,但我想你理解我。
问问题
2110 次
3 回答
3
首先你的英语很好,所以不要担心。
是的,如果您认为访问电话 api 可以让您做到这一点,那么这里是一个直接从用户空间应用程序使用内部电话 api 的示例。
于 2013-09-05T15:17:48.997 回答
2
就像@Ankit 说你可以像在 AutoAnswer 代码中一样使用 iTelephony,但是你必须在这个文件中添加一行(你必须放在你的项目中):
/**
* Return TRUE, if current call is video call
* First active call has priority
*/
boolean isVideoCall();
然后你可以像这样使用它:
private Boolean isVideoCall(Context context) {
Class<?> c;
try {
c = Class.forName(manager.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
telephonyService = (ITelephony) m.invoke(manager);
return telephonyService.isVideoCall();
} catch (Exception e) {
telephonyService = null;
e.printStackTrace();
return false;
}
}
只需像自动应答代码一样检测来电,然后执行此检查以查看它是否是视频。
于 2013-09-05T15:40:34.647 回答
-1
Android 没有内置的视频通话系统。是的,API 可以访问摄像头,但没有本地应用程序来处理视频通话。您要捕获哪些视频通话?使用 Google Hangouts 进行视频通话?Skype?雅虎!信使?所有这些应用程序都允许视频通话,因此如果它们提供自己的 API,您需要独立支持这些应用程序。
于 2013-09-05T15:23:46.317 回答