Как определить и выбрать пользователя локальной страны? - PullRequest
1 голос
/ 02 апреля 2020

Я использую эту библиотеку: https://github.com/AlmogBaku/IntlPhoneInput, чтобы получить номер телефона пользователя.

Я хочу определить и автоматически выбрать местную страну пользователя.

Читая это: https://github.com/AlmogBaku/IntlPhoneInput#public -методы , я добавил, что: android.permission.READ_PHONE_STATE в моем AndroidManifest. xml, но не могу автоматически определить и выбрать локальную страну пользователя.

Любая помощь?

1 Ответ

1 голос
/ 02 апреля 2020

Если вы используете API уровня 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
            }
        }
    }

    ...
}
...