将这两行添加到清单标记中的 Android Manifest.xml 文件中:
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
在 MainActivity AppCompatActivity 中定义新变量:
private static final String TAG = "MapActivity";
private static final String mREAD_SMS = Manifest.permission.READ_SMS;
private static final String mRECEIVE_SMS = Manifest.permission.RECEIVE_SMS;
private static final int SMS_PERMISSION_REQUEST_CODE = 1234;
定义一个名为 getSmsPermission(){} 的新私有 void 方法
private void getSmsPermission(){
Log.d(TAG, "getSmsPermission: getting sms permissions");
String[] permissions = {Manifest.permission.READ_SMS,
Manifest.permission.RECEIVE_SMS};
if(ContextCompat.checkSelfPermission(this.getApplicationContext(),
mREAD_SMS) == PackageManager.PERMISSION_GRANTED){
if(ContextCompat.checkSelfPermission(this.getApplicationContext(),
mRECEIVE_SMS) == PackageManager.PERMISSION_GRANTED){
//onActivityResult();
}else{
ActivityCompat.requestPermissions(this,
permissions,
SMS_PERMISSION_REQUEST_CODE);
}
}else{
ActivityCompat.requestPermissions(this,
permissions,
SMS_PERMISSION_REQUEST_CODE);
}
}
调用 getSmsPermission(); 方法中的方法称为 startLoginSystem(){} 或您配置帐户工具包的位置。
private void startLoginSystem() {
Intent intent = new Intent(MainActivity.this,AccountKitActivity.class);
AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder =
new AccountKitConfiguration.AccountKitConfigurationBuilder(LoginType.PHONE,
AccountKitActivity.ResponseType.TOKEN);
intent.putExtra(AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION,configurationBuilder.build());
startActivityForResult(intent,REQUEST_CODE);
//Asks for Sms Permission
getSmsPermission();
configurationBuilder.setReadPhoneStateEnabled(true);
configurationBuilder.setReceiveSMS(true);
}
这将如下所示:
https ://drive.google.com/open?id=120sQ-pc4x1X1termHxkd7IKKRhQVI916