请选择 进入手机版 | 继续访问电脑版
帖子
帖子
用户
博客
课程
显示全部楼层
3
帖子
0
勋章
13
Y币

[插件开发] 模块开发中电话相关权限动态申请问题

[复制链接]
发表于 2022-1-12 15:04:38
我在模块开发中动态申请了 Manifest.permission.ANSWER_PHONE_CALLS 的权限,用于实现挂断电话功能,用模块开发测试没问题。
在模块中用
  1. ActivityCompat.requestPermissions(mContext, new String[] {Manifest.permission.ANSWER_PHONE_CALLS}, PERMISSIONS_ANSWER_PHONE_CALLS);
复制代码
动态申请的权限
但是打包成模块发布到apicloud以后就无法申请到这个权限了,有没有大神能帮忙解惑一下。
在apicloud中也通过 api.requestPermission 申请了 phone 的权限,但不起作用。

模块中完整代码如下
  1. public void jsmethod_endCall(UZModuleContext moduleContext) throws JSONException {

  2.         boolean callSuccess = false;
  3.         String msg = "";
  4.         try {
  5.             if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.P) {
  6.                 // >=Android 9,需打开 Manifest.permission.ANSWER_PHONE_CALLS 权限
  7.                 TelecomManager telecomManager = (TelecomManager) mContext.getSystemService(Context.TELECOM_SERVICE);
  8.                 if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ANSWER_PHONE_CALLS) != PackageManager.PERMISSION_GRANTED) {
  9.                     // TODO: Consider calling
  10.                     //    ActivityCompat#requestPermissions
  11.                     ActivityCompat.requestPermissions(mContext, new String[] {Manifest.permission.ANSWER_PHONE_CALLS}, PERMISSIONS_ANSWER_PHONE_CALLS);
  12.                     // here to request the missing permissions, and then overriding
  13.                     //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
  14.                     //                                          int[] grantResults)
  15.                     // to handle the case where the user grants the permission. See the documentation
  16.                     // for ActivityCompat#requestPermissions for more details.
  17.                     msg = "telecomManager checkSelfPermission Manifest.permission.ANSWER_PHONE_CALLS";
  18.                 } else {
  19.                     callSuccess = telecomManager.endCall();// 提示信息
  20.                     msg = "telecomManager.endCall() finish";
  21.                 }
  22.             } else {
  23.                 Method method = Class.forName("android.os.ServiceManager")
  24.                         .getMethod("getService", String.class);
  25.                 IBinder binder = (IBinder) method.invoke(null, new Object[]{mContext.TELEPHONY_SERVICE});
  26.                 ITelephony telephony = ITelephony.Stub.asInterface(binder);
  27.                 telephony.endCall();
  28.                 callSuccess = true;

  29.                 msg = "telephony.endCall() finish";
  30.             }
  31.             msg += android.os.Build.VERSION.SDK_INT + ":" + android.os.Build.VERSION_CODES.LOLLIPOP;

  32.         } catch (Exception e) {
  33.             msg = "Exception   error: " + e.getMessage();
  34.             callSuccess = disconnectCall();
  35.             e.printStackTrace();
  36.         }

  37.         JSONObject ret = new JSONObject();
  38.         ret.put("status", callSuccess);
  39.         ret.put("msg", msg);

  40.         moduleContext.success(ret, true);
  41.     }
复制代码


380
帖子
4
勋章
6
Y币
云编译界面  android  框里 勾选电话权限了吗

https://developer.yonyou.com/for ... page%3D1&page=1
3
帖子
0
勋章
13
Y币
钩选了,打电话功能正常,就是通过自定义模块在 android9以上挂断不好用
技术支持-F · 2022-1-12 15:37云编译界面  android  框里 勾选电话权限了吗

https://developer.yonyou.com/forum.php?mod=viewthread&tid=110959&extra=page%3D1&page=1
380
帖子
4
勋章
6
Y币
那就不是没权限的问题了吧
小波 · 2022-1-12 16:28钩选了,打电话功能正常,就是通过自定义模块在 android9以上挂断不好用
说明安卓9以上不支持或没有适配
您需要登录后才可以回帖 登录

本版积分规则