Плагин Cordova-Call проблема с запросом разрешения, Android 6.0.1 - PullRequest
0 голосов
/ 03 апреля 2019

разрабатывалось в приложении phonegap, и оно работало как шарм на последних версиях Android, но в 5.1 он вылетает и зависает на 6.0.1 Основная функция этого приложения - сделать телефонный звонок на заданный номер (после некоторых запросов DDBB). В манифесте мы уже объявили необходимые разрешения, но в документации сказано, что до версии 5.1 разрешения работают по-другому. Вот трассировка стека для версии 6.0.1:

04-03 17:54:45.643 14337-14392/my.domain.myappname I/Timeline: Timeline: Activity_launch_request intent:Intent { act=android.content.pm.action.REQUEST_PERMISSIONS pkg=com.google.android.packageinstaller (has extras) } time:19474557
04-03 17:54:45.661 14337-14337/my.domain.myappname D/CordovaActivity: Paused the activity.
04-03 17:54:45.692 14337-14337/my.domain.myappname D/SystemWebChromeClient: file:///android_asset/www/js/index.js: Line 59 : Success:Call Successful
04-03 17:54:45.692 14337-14337/my.domain.myappname I/chromium: [INFO:CONSOLE(59)] "Success:Call Successful", source: file:///android_asset/www/js/index.js (59)
04-03 17:54:45.830 14337-14337/my.domain.myappname W/CordovaPlugin: Attempted to send a second callback for ID: CordovaCall1155645867
    Result was: "Call Failed"
04-03 17:54:45.830 14337-14337/my.domain.myappname W/CordovaPlugin: Attempted to send a second callback for ID: CordovaCall1155645867
    Result was: "Call Successful"
04-03 17:54:45.831 14337-14337/my.domain.myappname D/CordovaActivity: Resumed the activity.
04-03 17:54:45.849 14337-14337/my.domain.myappname I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@f9e4f3e time:19474764

А это и есть трассировка стека для Android 5.1:

04-03 18:59:11.229 19608-19608/my.domain.myappname D/SystemWebChromeClient: file:///android_asset/www/js/index.js: Line 192 : {"CordovaCall":{}}
04-03 18:59:11.229 19608-19608/my.domain.myappname I/chromium: [INFO:CONSOLE(192)] "{"CordovaCall":{}}", source: file:///android_asset/www/js/index.js (192)
04-03 18:59:11.262 19608-19716/my.domain.myappname E/AndroidRuntime: FATAL EXCEPTION: pool-1-thread-1
    Process: my.domain.myappname, PID: 19608
    java.lang.NoSuchMethodError: No virtual method requestPermissions([Ljava/lang/String;I)V in class Landroid/app/Activity; or its super classes (declaration of 'android.app.Activity' appears in /system/framework/framework.jar)
        at org.apache.cordova.CordovaInterfaceImpl.requestPermissions(CordovaInterfaceImpl.java:234)
        at org.apache.cordova.CordovaInterfaceImpl.requestPermission(CordovaInterfaceImpl.java:228)
        at com.dmarc.cordovacall.CordovaCall.callNumberPhonePermission(CordovaCall.java:307)
        at com.dmarc.cordovacall.CordovaCall$2.run(CordovaCall.java:221)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
        at java.lang.Thread.run(Thread.java:818)
04-03 18:59:11.284 19608-19608/my.domain.myappname D/SystemWebChromeClient: file:///android_asset/www/js/index.js: Line 59 : Success:Call Successful
04-03 18:59:11.284 19608-19608/my.domain.myappname I/chromium: [INFO:CONSOLE(59)] "Success:Call Successful", source: file:///android_asset/www/js/index.js (59)

Здесь у вас есть ссылка на библиотеку с версией и примерами: https://www.npmjs.com/package/cordova-call#send-a-phone-call

Мы используем пример телефонного звонка, как он есть, и он работает в последних версиях. Может кто-нибудь пролить свет на эту проблему и как ее исправить?

...