2016-12-15 46 views

回答

0

按照Document,你需要添加RECEIVE_SMS权限才能启用自动化读短信引脚。

添加下面的权限,在AndroidManifest.xml,允许 数字来阅读短信销因此使登录过程变得简单。

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

这不起作用 –

+0

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

2

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

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

而且做这样声明。现在自动填充功能就像魅力一样。

请注意,您可以选择保留电话状态权限或仅删除它。

+0

谢谢你的回答,但你的代码检查READ_PHONE_STATE和SEND_SMS的权限和数字只需要RECEIVE_SMS权限... – Ilya