我的应用程序在Nougat中正常工作但在Oreo中的sms验证没有自动获取。我也知道oreo已经通过SmsManager改变了sms验证。 这是我的代码(LoginActivity):
SmsManager mgr=SmsManager.getDefault();
String token=mgr.createAppSpecificSmsToken(buildPendingIntent());
Log.i("MainActivity", "sms token " + token);
和未决意图:
private PendingIntent buildPendingIntent() {
return(PendingIntent.getActivity(this, 1337,
new Intent(this, OTPActivity.class), 0));
}
和我的OTPActivity:
for (SmsMessage pdu :
Telephony.Sms.Intents.getMessagesFromIntent(getIntent())) {
// tv.append(pdu.getDisplayMessageBody());
TastyToast.makeText(getApplicationContext(), pdu.getDisplayMessageBody(), TastyToast.LENGTH_LONG, TastyToast.WARNING);
}
这是我的日志,我得到致命的消息: 06-15 11:00:08.911 30283-30283 / app.ayon.oemm E / AndroidRuntime:FATAL EXCEPTION:main 处理:app.ayon.oemm,PID:30283 java.lang.NoSuchMethodError:没有虚方法createAppSpecificSmsToken(Landroid / app / PendingIntent;)Ljava / lang / String;在课堂上Landroid / telephony / SmsManager;或其超级类(声明' android.telephony.SmsManager'出现在/system/framework/telephony-common.jar中) 在app.ayon.oemm.LoginActivity.onCreate(LoginActivity.java:67)