自动读取 SMS Pin 在数字 android 中不起作用

Posted

技术标签:

【中文标题】自动读取 SMS Pin 在数字 android 中不起作用【英文标题】:Automate Reading the SMS Pin not work in digits android 【发布时间】:2016-12-15 05:46:29 【问题描述】:

在安卓应用中基本功能正常,但文档中提到的“自动读取短信密码”功能不起作用。

fabric-digits

【问题讨论】:

function noted in the document below is not working -- 哪个函数? 自动读取短信 不清楚你在问什么:) 在他们的文档中,他们提供了一个自动读取短信 pin 的功能,方法是在清单中添加读取短信的权限,但无法正常工作 【参考方案1】:

首先,在清单文件中添加短信权限。

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

完成了。现在自动填充功能就像魅力一样。

请注意,您可以选择保留手机状态权限或直接删除它。

【讨论】:

感谢您的回答,但您的代码会检查 READ_PHONE_STATE 和 SEND_SMS 权限,而 Digits 只需要 RECEIVE_SMS 权限...【参考方案2】:

根据Document,您需要添加RECEIVE_SMS 权限才能启用自动读取短信密码。

AndroidManifest.xml 中添加下面的权限,允许 读取 SMS 密码的数字,从而使登录过程更容易。

<uses-permission android:name="android.permission.RECEIVE_SMS"/>

【讨论】:

发布有问题的代码。也许其中缺少一些东西。

以上是关于自动读取 SMS Pin 在数字 android 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

用Android Studio 手动输入的数字中找出最大和最小的数字

带有 Spring Security 的 Spring Boot - 使用 SMS/PIN/TOTP 的两因素身份验证

WebView(Android App)中弹出的模态对话框中的自动填充文本字段

android蓝牙配对 如何自动配对设置PIN码

Flutter sms_autofill 并不总是自动读取 OTP

Android自动填充短信验证码