Вы используете правильный плагин и ваш код в порядке, но вам просто нужно добавить правильное разрешение Android для доступа к данным с мобильного телефона. Для этого следуйте этому коду.
Добавьте этот плагин к вашему проекту:
Откройте файл app.module.ts и добавьте так:
import { AndroidPermissions } from '@ionic-native/android-permissions/ngx';
providers: [ AndroidPermissions ],
Откройте файл homePage.ts, импортируйте AndroidPermissions и добавьте этот код:
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;
}
});
}
Я стараюсь как ты, но я не могу получить номер, но после тяжелой работы и поиска я получил это, и с этим ты получишь номер и состояние.
Надеюсь, это поможет вам:)