如果有某些条件,我正在尝试用我的应用程序结束来电。我是几年前通过ITelephony做到的。但是现在我不能将ITelephony用于oreo及更高版本。后来发现,我可以将TelecomManager用于饼图,但仍不能用于oreo。有人知道如何结束oreo上的来电吗?我的代码如下:
使用电话技术
// Get the getITelephony() method
Class<?> classTelephony = Class.forName(telephonyManager.getClass().getName());
Method method = classTelephony.getDeclaredMethod("getITelephony");
// Disable access check
method.setAccessible(true);
//ITelephony telephonyService = (ITelephony) method.invoke(telephonyManager);
// Invoke getITelephony() to get the ITelephony interface
Object telephonyInterface = method.invoke(telephonyManager);
// Get the endCall method from
Class<?> telephonyInterfaceClass = Class.forName(telephonyInterface.getClass().getName());
Method methodEndCall = telephonyInterfaceClass.getDeclaredMethod("endCall");
// Invoke endCall()
methodEndCall.setAccessible(true);
methodEndCall.invoke(telephonyInterface);
并使用TelecomManager
telecomManager = (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ANSWER_PHONE_CALLS) != PackageManager.PERMISSION_GRANTED) {
return;
}
telecomManager.endCall();
我授予了哪些权限,如下所示:
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.ANSWER_PHONE_CALLS" />
在搜索中,我发现了与此问题类似的帖子,但其中任何一个都帮不了我。