Автоматизация чтения SMS Pin не работает в цифрах Android
В Android-приложении основные функции работают нормально, но функция "Автоматическое чтение SMS-пин-кода", указанная в документе, не работает.
2 ответа
Сначала добавьте разрешение SMS в свой файл манифеста.
<uses-permission android:name="android.permission.RECEIVE_SMS" />
Затем объявите разрешение на выполнение во время входа в систему или активности "Использовать мой номер телефона". Добавьте этот метод к вашему LoginActivity.class.
public static class UtilitiesPhone {
public static final int MY_PERMISSIONS_REQUEST_READ_PHONE_STATE = 130;
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public static boolean checkPermission(final Context context) {
int currentAPIVersion = Build.VERSION.SDK_INT;
if(currentAPIVersion>=android.os.Build.VERSION_CODES.M) {
int permissionPHONE = ContextCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE);
int permissionSMS = ContextCompat.checkSelfPermission(context, Manifest.permission.SEND_SMS);
List<String> listPermissionsNeeded = new ArrayList<>();
if (permissionPHONE != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.READ_PHONE_STATE);
}
if (permissionSMS != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.SEND_SMS);
}
if (!listPermissionsNeeded.isEmpty()) {
ActivityCompat.requestPermissions((Activity) context,
listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()]), MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
return false;
}
}else{
return true;
}
return true;
}
}
заявить об этом в своем onCreate
final boolean result= LoginActivity.UtilitiesPhone.checkPermission(this);
И сделано. Теперь автозаполнение работает как шарм.
Обратите внимание, что вы можете оставить разрешение на статус телефона или просто удалить его.
Согласно документу, вам необходимо добавить RECEIVE_SMS
разрешение на включение автоматического чтения ПИН-кода SMS.
Добавление разрешения ниже, в
AndroidManifest.xml
, позволяет цифрам читать пин-код SMS, что облегчает процесс входа в систему.
<uses-permission android:name="android.permission.RECEIVE_SMS"/>