uni-app plus.android调用红外问题
uni-app plus.android调用红外问题
| 属性 | 值 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | win10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.3.9 |
| 手机系统 | Android |
| 手机系统版本号 | Android 12 |
| 手机厂商 | 华为 |
| 手机机型 | 华为 |
| 页面类型 | vue |
| vue版本 | vue2 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
示例代码:
// #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
更多关于uni-app plus.android调用红外问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
到底咋个回事哦,硬是心脏病都要气出来了
更多关于uni-app plus.android调用红外问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
建议你使用纯原生开发测试验证下。不排除与targetSdkVersion有关 目前默认targetSdkVersion是28了
我开发不来存原生,我5月份打包了是没任何问题的,现在打包就是不得行了,代码是一点都没改过。targetSdkVersion这个东西是在哪里修改可以配置一下吗??麻烦指点一下
之前var res = plus.android.invoke( dlg , ‘hasIrEmitter’ ); 这个判断是true,现在打包后返回的null,我换成之前的hbuilderx是返回true了 但是又发不出去东西,之前的app又可以发
麻烦来个人帮忙解决一下嘛
你之前的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’ );
好的我试试
你的代码中直接 newObject("android.hardware.ConsumerIrManager") 是错误的,因为 ConsumerIrManager 是一个系统服务类,没有公开构造函数,必须通过 getSystemService 获取。
正确写法:
// #ifdef APP-PLUS
var main = plus.android.runtimeMainActivity();
var Context = plus.android.importClass("android.content.Context");
var irManager = plus.android.invoke(main, "getSystemService", Context.CONSUMER_IR_SERVICE);
var hasIr = plus.android.invoke(irManager, "hasIrEmitter");
if (!hasIr) {
uni.showToast({ title: '手机不支持红外发射', icon: 'none' });
}
// #endif

