Android_磊子
Android_磊子
  • 发布:2015-07-16 18:46
  • 更新:2019-09-29 10:59
  • 阅读:11993

以监听手机飞行模式开关为例说明如何使用Native.js进行BroadcastReceiver广播

分类:Native.js

写一个监听手机飞行模式开关的例子。

var receiver;  
main = plus.android.runtimeMainActivity(); //获取activity  
receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {  
    onReceive: function(context, intent) { //实现onReceiver回调函数  
        plus.android.importClass(intent);  
        console.log(intent.getAction());  
        result.textContent += '\nAction :' + intent.getAction();  
        main.unregisterReceiver(receiver);  
    }  
});  
var IntentFilter = plus.android.importClass('android.content.IntentFilter');  
var Intent = plus.android.importClass('android.content.Intent');  
var filter = new IntentFilter();  
filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED); //监听飞行模式  
main.registerReceiver(receiver, filter); //注册监听  
2015-07-16 18:46 1 条评论 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com

有没有监听pda扫描枪的扫描头并获取值

Jayming1024

Jayming1024

监听蓝牙状态怎么实现?

code磊

code磊

同问

  • Jayming1024

    我做好了,在下面

    2015-07-17 12:29

Jayming1024

Jayming1024

监听蓝牙


var main = plus.android.runtimeMainActivity();  
var BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");  
var BAdapter = new BluetoothAdapter.getDefaultAdapter();  
var resultDiv = document.getElementById('output');  
var receiver=plus.android.implements('io.dcloud.android.content.BroadcastReceiver', {  
onReceive: function(context, intent) { //实现onReceiver回调函数  
        plus.android.importClass(intent);  
    console.log(intent.getAction());  
    resultDiv.textContent += '\nAction :' + intent.getAction();  
    main.unregisterReceiver(receiver);  
    }  
});  
var IntentFilter = plus.android.importClass('android.content.IntentFilter');  
var filter = new IntentFilter();  
filter.addAction(BAdapter.ACTION_STATE_CHANGED); //监听蓝牙开关  
main.registerReceiver(receiver, filter); //注册监听  

if (!BAdapter.isEnabled()) {  
    BAdapter.enable(); //启动蓝牙  
}else{  
        BAdapter.disable();  
}  
  • DCloud_heavensoft

    感谢,建议你新建一篇单独的文章(不是问题,是文章),分享给大家,我们会送上500积分。

    2015-07-17 18:33

  • Jayming1024

    wa,好

    2015-07-17 19:27

  • 云钦

    这都是监听系统事件的,如何监听业务事件呢,比如获取gps坐标的监听事件

    2016-03-11 16:05

  • 云钦

    回复 DCloud_heavensoft:记分能干什么

    2016-03-11 16:15

jexm

jexm

如果是监听 某个应用程序的打开呢?比如微信

  • Android_磊子 (作者)

    建议先调研使用android原生代码如何实现,再进行转换为NJS。

    2015-09-09 17:24

njjbuaa

njjbuaa

监听接收到短信如何改呢,我下面的代码监听不到,不知道是哪错了
var SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
var filter = new IntentFilter(SMS_RECEIVED);
// filter.addAction("android.provider.Telephony.SMS_RECEIVED");
main.registerReceiver(receiver,filter);//注册监听

  • Android_磊子 (作者)

    先确定原生层使用此代码是否功能正常。

    2015-09-18 12:23

yezhch

yezhch

我将上面监听分析模式的代码拷贝到页面document.addEventListener( "plusready", function()事件里执行,好似无法监听哦,我在OnReceiver事件里加了alert()弹出框,开关飞行模式时也没有弹出,不知是什么原因呢,哪位能赐教一下,谢谢

  • ivan8015

    跟你是同样的问题,搞不明白

    2016-05-23 17:30

  • q***@163.com

    到现在也没有搞明白,前辈 弄好了吗?

    2018-11-26 15:31

飞雪依依

飞雪依依

不知道Native.js可以监听自定义的广播不?

  • Android_磊子 (作者)

    可以得。

    2016-07-08 17:55

  • 飞雪依依

    我已经调整实现监听自定义广播,代码如下:

    function registerReceiver(){


    var main = plus.android.runtimeMainActivity();//获取activity  
    //创建自定义广播实例
    var receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver',{
    onReceive : function(context,intent){//实现onReceiver回调函数
    plus.android.importClass(intent);//通过intent实例引入intent类,方便以后的‘.’操作
    var isSuccess = intent.getExtra("isSuccess");
    var msg = intent.getExtra("msg");
    alert("isSuccess = "+isSuccess+" , msg = "+msg);
    }});

    var IntentFilter = plus.android.importClass('android.content.IntentFilter');
    var filter = new IntentFilter();

    filter.addAction("io.dcloud.printer.printcallback");//监听打印回调,自定义字符串

    main.registerReceiver(receiver,filter); //注册监听

    }

    2016-07-11 13:59

  • q***@163.com

    回复 飞雪依依: 倒数第二行,是广播命令吗?不同设备是不是不一样

    2018-11-26 15:33

飞雪依依

飞雪依依

接手自定义广播有没有个示例?

OnePein

OnePein

如何静态注册广播呢?就是app退出了也能执行

2***@qq.com

2***@qq.com

hbuilder可以通过udp广播获取设备ip吗?

xiaoqianYang

xiaoqianYang

请问监听系统通知栏信息呢,应该怎么写

Mankii

Mankii

感谢分享,但是t贴主的代码一开始运行无效,
要给变量加上var,且回调中有此代码中未定义的变量会报错,
所以要改成以下,才能调通:

**var main** = plus.android.runtimeMainActivity(); //获取activity    
**var receiver** = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {    
    onReceive: function(context, intent) { //实现onReceiver回调函数    
        plus.android.importClass(intent);    
        console.log(intent.getAction());    
        // result.textContent += '\nAction :' + intent.getAction();    
        // main.unregisterReceiver(receiver);  // 关闭监听  
    }    
});  
var IntentFilter = plus.android.importClass('android.content.IntentFilter');    
var Intent = plus.android.importClass('android.content.Intent');    
var filter = new IntentFilter();    
filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED); //监听飞行模式    
main.registerReceiver(receiver, filter); //注册监听 

该问题目前已经被锁定, 无法添加新回复