// #ifdef APP-PLUS
var mainActivity = plus.android.runtimeMainActivity();
var dlg = plus.android.newObject("android.hardware.ConsumerIrManager", mainActivity);
// #endif
// #ifdef APP-PLUS
var res = plus.android.invoke( dlg , 'hasIrEmitter' );
if( !res ){
uni.showToast({
title: '手机不支持红外发射',
icon: 'none'
});
}
// #endif
- 发布:2022-01-24 10:00
- 更新:2022-01-24 17:42
- 阅读:501
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 3.3.9
手机系统: Android
手机系统版本号: Android 12
手机厂商: 华为
手机机型: 华为
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
就是现在调用这个红外服务,在判断一下这个是否可以
就是现在调用这个红外服务,在判断一下这个是否可以
预期结果:
正常使用
正常使用
实际结果:
始终提示手机不支持红外发射
始终提示手机不支持红外发射
bug描述:
5月份用plus.android调用安卓的红外服务,项目上线并正常使用,但是最新版的打包后没办法使用了 ,心脏病都要被气出来了
4 个回复
雍渡人 (作者)
到底咋个回事哦,硬是心脏病都要气出来了
DCloud_Android_ST
建议你使用纯原生开发测试验证下。不排除与targetSdkVersion有关 目前默认targetSdkVersion是28了
雍渡人 (作者)
我开发不来存原生,我5月份打包了是没任何问题的,现在打包就是不得行了,代码是一点都没改过。targetSdkVersion这个东西是在哪里修改可以配置一下吗??麻烦指点一下
2022-01-24 16:35
雍渡人 (作者)
之前var res = plus.android.invoke( dlg , 'hasIrEmitter' ); 这个判断是true,现在打包后返回的null,我换成之前的hbuilderx是返回true了 但是又发不出去东西,之前的app又可以发
2022-01-24 16:42
雍渡人 (作者)
麻烦来个人帮忙解决一下嘛
DCloud_Android_ST
你之前的NJS本身就不太符合标准。按以下方式改下试试
var mainActivity = plus.android.runtimeMainActivity();
var Context = plus.android.importClass("android.content.Context");
var ConsumerIrManager = plus.android.importClass("android.hardware.ConsumerIrManager");
var dlg = plus.android.runtimeMainActivity().getSystemService(Context.CONSUMER_IR_SERVICE);
var res = plus.android.invoke( dlg , 'hasIrEmitter' );
雍渡人 (作者)
好的我试试
2022-01-25 14:47