我想实现挂断电话的功能。
但是在Redmi 6(Android 8.1)中,这是不可能的。
我使用了以下两种方法:
1。
TelecomManager telecomManager = (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
if (telecomManager != null) {
telecomManager.endCall();
}
出现以下错误:
java.lang.SecurityException: Neither user 10179 nor current process has android.permission.MODIFY_PHONE_STATE
2。
TelephonyManager mTelMgr = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
Class<TelephonyManager> c = TelephonyManager.class;
try {
Method getITelephonyMethod = c.getDeclaredMethod("getITelephony", (Class[]) null);
getITelephonyMethod.setAccessible(true);
ITelephony iTelephony;
iTelephony = (ITelephony) getITelephonyMethod.invoke(mTelMgr, (Object[]) null);
iTelephony.endCall();
} catch (Exception e) {
e.printStackTrace();
}
出现以下错误:
java.lang.SecurityException: MODIFY_PHONE_STATE permission required.
但是在其他手机测试中,它可以执行。
我不知道问题出在哪里。
答案 0 :(得分:1)
MODIFY_PHONE_STATE 已在API级别1中添加
公共静态最终字符串MODIFY_PHONE_STATE
允许修改电话状态-开机,mmi等。不包括拨打电话。
不供第三方应用程序使用。
因此,除非其系统应用程序或您的设备已植根,否则您的应用程序将无法使用此权限