簡體   English   中英

在android 7.0中使用cordova發送短信時的安全例外

[英]Security Exception when sending sms using cordova in android 7.0

我試圖通過添加corodova發送sms插件從使用短信管理器的設備發送短信。這個應用程序工作正常,直到android6.0設備它發送短信也,但當我試圖從android7.0發送短信時,它顯示我以下安全例外。在發送短信之前,它要求獲得許可,我也同意了。

例外:

java.lang.SecurityException: 
at android.os.Parcel.readException(Parcel.java:1683)
at android.os.Parcel.readException(Parcel.java:1636)
at com.android.internal.telephony.IPhoneSubInfo$Stub$Proxy.getGroupIdLevel1(IPhoneSubInfo.java:583)
at android.telephony.TelephonyManager.getGroupIdLevel1(TelephonyManager.java:2163)
at android.telephony.SmsMessage.hasEmsSupport(SmsMessage.java:854)
at com.android.internal.telephony.SmsMessageBase.calcUnicodeEncodingDetails(SmsMessageBase.java:409)
at com.android.internal.telephony.gsm.SmsMessage.calculateLength(SmsMessage.java:796)
at android.telephony.SmsMessage.fragmentText(SmsMessage.java:354)
at android.telephony.SmsManager.divideMessage(SmsManager.java:450)
at com.cordova.plugins.sms.Sms.send(Sms.java:143)
at com.cordova.plugins.sms.Sms.access$400(Sms.java:22)
at com.cordova.plugins.sms.Sms$1.run(Sms.java:102)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)

發送短信的代碼:

  var smsdata = ' தேதி: ' + this.currentbilldate + ' பில் எண்: ' + this.save_details.vehicle_bill_no + ' எடுக்கப்பட்ட பொருட்களின் விவரங்கள்: ' + this.smselements.toString() + ', மொத்த பொருட்கள்: ' + totalcount + '';
    var farmermobileno = this.entry_details.farmer_mobile_no;
    this.sms.send(farmermobileno, smsdata).then((result) => {
      this.commonService.presentToast('Message sent successfully');
    }, (error) => {
      console.log('Error in sending message', error);
      this.commonService.presentToast('Message Failed');
    });

插件名稱:cordova-sms-plugin

短信發送文字:

 var smsdata = 'உங்கள் கணக்கில் அன்று 23-8-17 அட்வான்ஸ் தொகை ₹500  வழங்கப்பட்டுள்ளது.இருப்பு ₹5000';

希望您可以使用以下方法來檢查權限。

在Android上,可以通過一個額外的功能了解您是否具有發送SMS的權限(Android Marshmallow權限)。

var app = {
    checkSMSPermission: function() {
        var success = function (hasPermission) { 
            if (hasPermission) {
                sms.send(...);
            }
            else {
                // show a helpful message to explain why you need to require the permission to send a SMS
                // read http://developer.android.com/training/permissions/requesting.html#explain for more best practices
            }
        };
        var error = function (e) { alert('Something went wrong:' + e); };
        sms.hasPermission(success, error);
    }
};

你也可以在Git上看到更多細節。

更新:

var smsdata = 'உங்கள் கணக்கில் அன்று 23-8-17 அட்வான்ஸ் தொகை' + '₹500' +  'வழங்கப்பட்டுள்ளது.இருப்பு'+ '₹5000';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM