2017-07-10 15 views
7

Ben corodova göndermek sms eklentisi ekleyerek sms yöneticisi kullanarak bir cihazdan sms göndermek çalışıyorum. Bu uygulama android6.0 cihazı kadar çalışır, aynı zamanda sms gönderir ama ben android7.0 sms göndermeye çalıştı aşağıdaki güvenlik istisnasını gösterir. sms gönderirken izin sorar ve ben de izin verdim.Android 7.0 cordova kullanarak sms gönderirken Güvenlik İstisna

İstisna:

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) 

Kod sms göndermek için:

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'); 
    }); 

Eklenti Adı: cordova-sms-eklentisi

Metin sms göndererek:

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

Ben bu konuda bakıyordu ve ben bir düzeltme "düzeltme belirten eklentinin son sürümü (yapılan görebiliyordu gibi Eklentinin son sürümünü kullanıyor olmayabilir sanırım android): Amaçlar için izinleri kontrol etmeyin ". Başka bir olası neden android 7.0 - https://developer.android.com/about/versions/nougat/android-7.0-changes.html – Gandhi

cevap

2

Umarım y izinleri kontrol etmek için aşağıdaki yöntemi kullanabilirsiniz. Android'de

, extra işlevi bir SMS (Android Hatmi izni) gönderme izni olup olmadığını bilmek maruz kalmaktadır.

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); 
    } 
}; 

Sen Git too burada daha fazla ayrıntı görebilirsiniz.

Güncelleme:

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

yapılan en son davranış değişiklikleri olabilir, izin istemek ve hatta android6 iyi çalışır. 0 ama android7.0 sonra o otomatik olarak kapalı alır ve ben bir dizede tek bir metin göndermeye çalıştım sonra izin istendiğinde android 7.0 içinde bile iyi çalışıyor ama dizeleri bazı numaraları var ne zaman gönderilmeden otomatik olarak kapalı olur sadece android7.0 içinde metin uzunluğunu kontrol ettim ve sadece 81 karakter –

+0

Bir numara ile göndermeye çalıştığın metni gösterebilir misin? – Sampath

+0

güncelleştirilmiş soruyu kontrol edebilirsiniz –