首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >离子3-如何检索来电号码?

离子3-如何检索来电号码?
EN

Stack Overflow用户
提问于 2018-04-30 11:32:10
回答 1查看 1.1K关注 0票数 0

我正在尝试获取离子3中的来电号码。我正在用https://www.npmjs.com/package/cozzbie.plugin.phonecalltrap来做这件事。它很好地检测到电话状态,但没有返回传入的电话号码。

我在用下面的代码,

代码语言:javascript
复制
declare var PhoneCallTrap:any;

if (PhoneCallTrap) 
    {
      PhoneCallTrap.onCall(function(obj) {
        var callObj = JSON.parse(obj),
            state = callObj.state,
            callingNumber = callObj.incomingNumber;

        switch (state) {
            case "RINGING":
                console.log("Phone is ringing =" + callingNumber);
                break;
            case "OFFHOOK":
                console.log("Phone is off-hook");
                break;

            case "IDLE":
                console.log("Phone is idle");
                break;
        }
      });
    } 

有没有其他的想法或插件来检索电话号码?

EN

回答 1

Stack Overflow用户

发布于 2019-04-30 09:10:07

您正在使用正确的插件,您的代码是好的,但您只需要添加正确的android权限,从移动访问数据。为此,请遵循以下代码。

将这个插件添加到您的项目中:

打开app.module.ts文件,添加如下:

代码语言:javascript
复制
import { AndroidPermissions } from '@ionic-native/android-permissions/ngx';

providers: [ AndroidPermissions ],

打开homePage.ts文件导入AndroidPermissions并添加以下代码:

代码语言:javascript
复制
import { AndroidPermissions } from '@ionic-native/android-permissions/ngx';

declare var PhoneCallTrap: any;

constructor(public androidPermissions: AndroidPermissions){
  this.checkPermissionCall();
  this.checkPermissionREAD_CONTACTS();
}

//READ_PHONE_STATE
checkPermissionCall() {
  this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.READ_PHONE_STATE).then(
    success => {
      //if permission granted
      this.phonecalls();
    },
    err => {
      this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.READ_PHONE_STATE).
        then(success => {
          this.phonecalls();
        },
          err => {
            console.log("cancelled")
          });
    });
  this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.READ_PHONE_STATE]);
}

//READ_PHONE_STATE
checkPermissionREAD_CONTACTS() {
  this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.READ_CONTACTS).then(
    success => {
      //if permission granted
    },
    err => {
      this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.READ_CONTACTS).
        then(success => {
        },
          err => {
            console.log("cancelled")
          });
    });
  this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.READ_CONTACTS]);
}

//phone calls
phonecalls() {
  PhoneCallTrap.onCall(function (obj) {

    var callObj = JSON.parse(obj),
      state = callObj.state,
      callingNumber = callObj.incomingNumber;

    switch (state) {
      case "RINGING":
        console.log("Phone is ringing", callingNumber);
        break;
      case "OFFHOOK":
        console.log("Phone is off-hook");
        break;

      case "IDLE":
        console.log("Phone is idle");
        break;
    }
  });
}

我试着像你一样,但我不能得到数字,但经过艰苦的工作和搜索,我得到了这个,用这个,你将得到号码和状态。

希望它能帮助你:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50099660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档