#java #android #android-sms
#java #Android #android-sms
Вопрос:
Я хочу реализовать приемник sms OTP в моем Android-проекте, который полностью написан на Java, а не на kotlin. Пожалуйста, кто-нибудь может мне помочь сделать это на Android, используя язык Java?
Я пробовал код kotlin в моем проекте Android, но мои функциональные возможности пользовательского интерфейса основаны на java-коде, пожалуйста, помогите мне.
Комментарии:
1. Вы имели в виду SMS Retriever? Пожалуйста, прочтите это: developers.google.com/identity/sms-retriever/request
2. да, но я понятия не имею, как реализовать это на чистой Java без какого-либо кода kotlin
3. Ссылка, которой поделился @StanleyKou, полностью написана на java, а не на kotlin
Ответ №1:
Попробуйте использовать это для Java
public class SmsBroadcastReceiver extends BroadcastReceiver {
public static final String SMS_BUNDLE = "pdus";
public void onReceive(Context context, Intent intent) {
Bundle intentExtras = intent.getExtras();
if (intentExtras != null) {
Object[] sms = (Object[]) intentExtras.get(SMS_BUNDLE);
String smsMessageStr = "";
for (int i = 0; i < sms.length; i) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) sms[i]);
String smsBody = smsMessage.getMessageBody().toString();
String address = smsMessage.getOriginatingAddress();
smsMessageStr = "SMS From: " address "n";
smsMessageStr = smsBody "n";
}
Toast.makeText(context, smsMessageStr, Toast.LENGTH_SHORT).show();
//this will update the UI with message
SmsActivity inst = SmsActivity.instance();
inst.updateList(smsMessageStr);
}
}
}
Попробуйте использовать что-то подобное для Kotlin
class SmsBroadcastReceiver:BroadcastReceiver() {
fun onReceive(context:Context, intent:Intent) {
val intentExtras = intent.getExtras()
if (intentExtras != null)
{
val sms = intentExtras.get(SMS_BUNDLE) as Array<Any>
val smsMessageStr = ""
for (i in sms.indices)
{
val smsMessage = SmsMessage.createFromPdu(sms[i] as ByteArray)
val smsBody = smsMessage.getMessageBody().toString()
val address = smsMessage.getOriginatingAddress()
smsMessageStr = "SMS From: " address "n"
smsMessageStr = smsBody "n"
}
Toast.makeText(context, smsMessageStr, Toast.LENGTH_SHORT).show()
//this will update the UI with message
val inst = SmsActivity.instance()
inst.updateList(smsMessageStr)
}
}
companion object {
val SMS_BUNDLE = "pdus"
}
}