1

私は奇妙な問題に直面しています。私がビルドしたアプリの実行時にアクセス許可を要求するために、このチュートリアルに従いました。問題は、デバイスが Android M を使用しているかどうかを確認し、実行時にアクセス許可を要求しても、ダイアログが表示されないことです。

コード:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_configuration);
        spinner = (Spinner)findViewById(R.id.database_selection_spinner);
        button = (Button)findViewById(R.id.proceedBtn);
        if (Build.VERSION.SDK_INT == Build.VERSION_CODES.M) {
           if (ContextCompat.checkSelfPermission(ConfigurationActivity.this, Manifest.permission.INTERNET) == PackageManager.PERMISSION_GRANTED){
               accessWebService();
           }else {
               if (shouldShowRequestPermissionRationale(Manifest.permission.INTERNET)){
                   StringGenerator.showToast(ConfigurationActivity.this, "Internet Permission needs to be granted");
               }

               requestPermissions(new String[]{Manifest.permission.INTERNET}, AppConstants.PERMISSION_REQ_CODE);

           }
        }else {
            accessWebService();
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == AppConstants.PERMISSION_REQ_CODE){
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED){
                accessWebService();
            }else {
                StringGenerator.showToast(ConfigurationActivity.this, "LOL");
            }
        }else {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }

アクセス Web サービス:

private void accessWebService(){
        FetchDataTask task = new FetchDataTask();
        task.execute(AppConstants.DATABASE_INFO_URL);
    }

マニフェスト:

<uses-permission-sdk-23 android:name="android.permission.INTERNET"/>

結果は次のとおりです。

ここに画像の説明を入力

そして、要求された許可はありませんでした:

ここに画像の説明を入力

助言がありますか?

4

1 に答える 1

5

インターネットは「通常の許可」であり、ユーザーに尋ねることなくシステムによって許可されます。詳しくはドキュメントを参照してください。

ユーザーは危険な権限のみを求められます。

于 2015-12-30T11:16:47.823 に答える