-6

Androidアプリでは基本機能は正常に動作しますが、ドキュメントに記載されている「SMSピンの自動読み取り」機能は機能していません。

ファブリック桁

4

2 に答える 2

2

まず、マニフェスト ファイルに SMS アクセス許可を追加します。

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

次に、Login または Use my phone number アクティビティの時点で実行時のアクセス許可を宣言します。このメソッドを 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);

そして完了。これで、自動入力が魅力的に機能します。

電話状態の許可を保持するか、単に削除するかを選択できることに注意してください。

于 2017-04-04T16:33:02.590 に答える