Запрос permission java android

223
06 ноября 2017, 20:08

Не получается получить разрешение на использование интернета на телефоне android. Пытался сделать это на android 6.0 В дальнейшем вставил проверку наличия расширения:

int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET);
        if (permissionCheck == PackageManager.PERMISSION_GRANTED) permText.setText("done");
        if (permissionCheck== PackageManager.PERMISSION_DENIED) permText.setText("failed");

В дальнейшем вычитал что в android 6.0 требуется отдельный запрос и простое прописывание в манифесте не поможет. Тогда изменил targetSDK и minSDK на 15 (android 4.0.3 если не ошибаюсь). По прежнему выдает отсутствие разрешения. Вот мой манифест, вдруг не правильно прописал. Помогите пожалуйста получить разрешения. Не понимаю почему не работает.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.nikita.simpleclient">
    <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest> 
Answer 1

В блоке если разрешение не предоставлено, у вас это if (permissionCheck== PackageManager.PERMISSION_DENIED) можно программно запросить разрешение, необходимо для версии android 6+

ActivityCompat.requestPermissions(MainActivity.this,
                    new String[]{Manifest.permission.INTERNET},
                    1);

Ссылка на документацию - https://developer.android.com/training/permissions/requesting.html

Более полный код

//Проверка версии SDK устройства
            if (Build.VERSION.SDK_INT >= 23) {
                //динамическое получение прав на INTERNET
                if (checkSelfPermission(android.Manifest.permission.INTERNET)
                        == PackageManager.PERMISSION_GRANTED) {
                    Log.d(TAG, "Permission is granted");
                    //делаете что-то с интернетом
                } else {
                    Log.d(TAG, "Permission is revoked");
                    //запрашиваем разрешение
                    ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.INTERNET}, 1);
                }
            } else {
                //делаете что-то с интернетом;
            }

Ну в манифесте permission должно стоять перед application.

READ ALSO
NullPointerException при работе с TableView

NullPointerException при работе с TableView

Не могу понять в чем проблема, вроде все делаю по oracle tutorialsНо что-то не все верно получается

191
Импорт wsdl. Read timed out

Импорт wsdl. Read timed out

Пытаюсь проимпортировать эту wsdl схему https://wwwmomondo

160