Пользователь отказал в разрешении в Ionic 4 SMS cordova

#android #cordova #ionic-framework #npm #ionic4

#Android #кордова #ionic-framework #npm #ionic4

Вопрос:

Я использую Ionic 4 для создания приложения, предназначенного для отправки экстренных SMS-сообщений, поэтому мне нужно, чтобы оно отправлялось программно, без входа в собственное приложение SMS.

Я использую следующий код:

 async sendSMS(){
this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.SEND_SMS).then(
  result => console.log('Has permission?' result.hasPermission),
  err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.SEND_SMS )
  );
var options = {
        replaceLineBreaks: true, // true to replace n by a new line, false by default
        android: {
            //intent: 'INTENT'  // send SMS with the native android SMS messaging
           intent: '' // send SMS without opening any other app
        }
    };
    try{
    await this.sms.send(this.phoneNumber.toString(),this.textMessage,options);
    console.log("sent");
    this.mostrarToast("mensage sent");
  }
  catch(e){
    console.log(JSON.stringify(e));
    console.log(e);
    this.mostrarToast(e);
  }
  

Когда я открываю свой logcat, я получаю это:

 2019-03-19 21:17:12.255 11786-11786/io.ionic.starter I/chromium: [INFO:CONSOLE(168)] "Has permission?", source: http://localhost:8080/home-home-module.js (168)
2019-03-19 21:17:12.322 11786-11786/io.ionic.starter I/chromium: [INFO:CONSOLE(187)] ""User has denied permission"", source: http://localhost:8080/home-home-module.js (187)
2019-03-19 21:17:12.322 11786-11786/io.ionic.starter I/chromium [INFO:CONSOLE(188)] "User has denied permission", source: http://localhost:8080/home-home-module.js (188)
  

Кто-нибудь знает, почему я не могу отправить сообщение?

Ответ №1:

Сначала добавьте это в свой манифест Android

 <uses-permission android:name="android.permission.SEND_SMS"/>
  

Комментарии:

1. Используете ли вы эту библиотеку? ionicframework.com/docs/native/android-permissions

2. Я полагаю, что я касался этого раньше. Android недавно обновил способ работы с разрешениями, при котором вы можете запросить конкретное разрешение, как только оно вам понадобится.