3

In our app, we are using google's SMS Retriever API to auto fetch SMS code. It works fine on the majority of devices but there are some issues.

  1. On app update, sms-retriever API doesn't work unless the user clears app's cache.
  2. On some devices, sms-retriever API doesn't work at all even the google- services version is 10.2 +

I am also getting these ANRs (for the broadcast receiver that fetches the OTP code) report on play store for android 8 and 9 only for Samsung devices.

Broadcast of Intent { act=com.google.android.gms.auth.api.phone.SMS_RETRIEVED flg=0x200010 pkg=pk.com.telenor.phoenix cmp=pk.com.telenor.phoenix/.broadcast.MySMSBroadcastReceiver (has extras) }

"main" prio=5 tid=1 Native


| group="main" sCount=1 dsCount=0 flags=1 obj=0x7652af68 self=0xea05f000
  | sysTid=3198 nice=0 cgrp=default sched=0/0 handle=0xee6e94a8
  | state=S schedstat=( 0 0 0 ) utm=16 stm=13 core=2 HZ=100
  | stack=0xff418000-0xff41a000 stackSize=8MB
  | held mutexes=
  #00  pc 000000000005588c  /system/lib/libc.so (__ioctl+8)
  #01  pc 000000000002235b  /system/lib/libc.so (ioctl+38)
  #02  pc 000000000003d863  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+206)
  #03  pc 000000000003e339  /system/lib/libbinder.so (android::IPCThreadState::waitForResponse(android::Parcel*, int*)+240)
  #04  pc 000000000003729d  /system/lib/libbinder.so (android::BpBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+36)
  #05  pc 00000000000cac03  /system/lib/libandroid_runtime.so (android_os_BinderProxy_transact(_JNIEnv*, _jobject*, int, _jobject*, _jobject*, int)+82)
  at android.os.BinderProxy.transactNative (BinderProxy.java)
  at android.os.BinderProxy.transact (BinderProxy.java:1143)
  at android.security.IKeystoreService$Stub$Proxy.finish (IKeystoreService.java:1492)
  at android.security.KeyStore.finish (KeyStore.java:805)
  at android.security.keystore.KeyStoreCryptoOperationChunkedStreamer$MainDataStream.finish (KeyStoreCryptoOperationChunkedStreamer.java:338)
  at android.security.keystore.KeyStoreCryptoOperationChunkedStreamer.doFinal (KeyStoreCryptoOperationChunkedStreamer.java:220)
  at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal (AndroidKeyStoreCipherSpiBase.java:506)
  at javax.crypto.Cipher.doFinal (Cipher.java:2055)
  at pk.com.telenor.phoenix.utils.AndroidKeyStoreRSAUtils.decryptByPrivateKey (AndroidKeyStoreRSAUtils.java:133)
  at pk.com.telenor.phoenix.utils.Storage.initPro (Storage.java:99)
  at pk.com.telenor.phoenix.utils.Storage.init (Storage.java:67)
  at pk.com.telenor.phoenix.utils.Storage.<init> (Storage.java:44)
  at pk.com.telenor.phoenix.utils.Storage.init (Storage.java:52)
  at pk.com.telenor.phoenix.EasyPaisaApplication.getProcessName (EasyPaisaApplication.java:211)
  at pk.com.telenor.phoenix.EasyPaisaApplication.onCreate (EasyPaisaApplication.java:81)
  at pk.com.telenor.phoenix.utils.Storage.init (Storage.java:53)
  at pk.com.telenor.phoenix.EasyPaisaApplication.onCreate (EasyPaisaApplication.java:88)
  at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1158)
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:6304)
  at android.app.ActivityThread.access$1200 (ActivityThread.java:241)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1807)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:214)
  at android.app.ActivityThread.main (ActivityThread.java:7156)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:975)

Have someone face such issue with sms-retriever API? How to resolve it?

MohanKumar
  • 960
  • 10
  • 26
Zeeshan Shabbir
  • 6,704
  • 4
  • 38
  • 74

0 Answers0