如何检测和选择用户所在国家?
How to detect and selecting user local country?
我正在使用该库:https://github.com/AlmogBaku/IntlPhoneInput 获取用户 phone 号码。
我想自动检测并select用户所在的国家/地区。
读到:https://github.com/AlmogBaku/IntlPhoneInput#public-methods,
我补充说:android.permission.READ_PHONE_STATE
在我的 AndroidManifest.xml 但无法自动检测和 select 用户所在的国家/地区。
有什么帮助吗?
如果您使用的是 API-level 23+,那么清单中的 android.permission.READ_PHONE_STATE
是不够的,您需要以编程方式请求它,然后这样做
public class MainActivity extends AppCompatActivity {
private static final int PERMISSION_READ_STATE = 21;
private IntlPhoneInput mPhoneInputView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED) {
// We do not have this permission. Let's ask the user by showingg a dialog
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, PERMISSION_READ_STATE);
}
mPhoneInputView = findViewById(R.id.my_phone_input);
}
// Called when the user decides the dialog permission
@Override
public void onRequestPermissionsResult(int requestCode,
@NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == PERMISSION_READ_STATE) {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission granted!
mPhoneInputView.setDefault();
} else {
// permission denied
}
}
}
...
}
我正在使用该库:https://github.com/AlmogBaku/IntlPhoneInput 获取用户 phone 号码。
我想自动检测并select用户所在的国家/地区。
读到:https://github.com/AlmogBaku/IntlPhoneInput#public-methods,
我补充说:android.permission.READ_PHONE_STATE
在我的 AndroidManifest.xml 但无法自动检测和 select 用户所在的国家/地区。
有什么帮助吗?
如果您使用的是 API-level 23+,那么清单中的 android.permission.READ_PHONE_STATE
是不够的,您需要以编程方式请求它,然后这样做
public class MainActivity extends AppCompatActivity {
private static final int PERMISSION_READ_STATE = 21;
private IntlPhoneInput mPhoneInputView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED) {
// We do not have this permission. Let's ask the user by showingg a dialog
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, PERMISSION_READ_STATE);
}
mPhoneInputView = findViewById(R.id.my_phone_input);
}
// Called when the user decides the dialog permission
@Override
public void onRequestPermissionsResult(int requestCode,
@NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == PERMISSION_READ_STATE) {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission granted!
mPhoneInputView.setDefault();
} else {
// permission denied
}
}
}
...
}