NewsNing
NewsNing
  • 发布:2016-11-08 15:08
  • 更新:2023-07-31 10:23
  • 阅读:9588

Android监听电话呼入呼出

分类:Native.js

基本上是对着Native.js和百度的Android原生代码撸出来的。暂未测试多台机型。

            (function($) {  
                var receiver, main, context, TelephonyManager;  
                $.plusReady(function() {  
                    context = plus.android.importClass('android.content.Context'); //上下文  
                    TelephonyManager = plus.android.importClass('android.telephony.TelephonyManager'); //通话管理  
                    main = plus.android.runtimeMainActivity(); //获取activity  
                    receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {  
                        onReceive: doReceive //实现onReceiver回调函数  
                    });  
                    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); //监听飞行模式  
                    filter.addAction(TelephonyManager.ACTION_PHONE_STATE_CHANGED); //监听电话状态  
                    main.registerReceiver(receiver, filter); //注册监听  
                });  

                function doReceive(context, intent) {  
                    plus.android.importClass(intent);  

                    var phoneNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER),  
                        telephony = context.getSystemService(context.TELEPHONY_SERVICE),  
                        state = telephony.getCallState();  
                    switch(state) {  
                        case TelephonyManager.CALL_STATE_RINGING:  
                            console.log("[Broadcast]等待接电话=" + phoneNumber);  
                            break;  
                        case TelephonyManager.CALL_STATE_IDLE:  
                            console.log("[Broadcast]电话挂断=" + phoneNumber);  
                            break;  
                        case TelephonyManager.CALL_STATE_OFFHOOK:  
                            console.log("[Broadcast]通话中=" + phoneNumber);  
                            break;  
                    }  
                    console.log(intent.getAction());  
                }  

            }(mui));
6 关注 分享
lhyh EmmenCao d***@sina.com jqr 大肥光光 h***@163.com

要回复文章请先登录注册

AimerQAQ

AimerQAQ

uniapp中的Android或IOS系统打电话事件的监听与状态获取,包括呼入呼出接听挂断计算时长,请联系我QQ462108858
2019-10-28 09:11
xiaoqianYang

xiaoqianYang

请问如何监听系统通知栏的信息
2018-11-14 17:18
y***@163.com

y***@163.com

我试了下。。好像没用啊。。
2017-07-18 16:14
霸王

霸王

这个代码现在好像监听不到电话挂断了
2017-07-17 16:27
NewsNing

NewsNing (作者)

回复 d***@sina.com :
就是那个等待接通电话...
2017-06-14 08:58
d***@sina.com

d***@sina.com

不过呼出在哪里。。。。
2017-06-07 14:17