запрашивающее интернет-разрешение не работает - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь запросить разрешение на доступ в интернет в своем приложении для Android на своем телефоне Android с помощью SDK 26. Я пытался использовать AndroidManifest.xml, я пытался использовать ActivityCompat.requestPermissions(this, new String[]{ Manifest.permission.INTERNET }, 1); и пробовал разные коды запросов.Я пробовал это в onCreate и в событии нажатия кнопки, но все равно никаких разрешений не появляется, когда я вхожу в Информация о приложении.

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

andoidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.simplevents">

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

    <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">
        <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>

Ответы [ 4 ]

0 голосов
/ 14 марта 2019

Поскольку мне больше не разрешается удалять этот вопрос, потому что другие люди уже приложили усилия, чтобы ответить на этот вопрос, я объясню вам, в чем заключалась моя ошибка.У меня все время было разрешение на доступ в Интернет - поэтому у меня была совершенно другая ошибка в моем коде, и я неправильно истолковал сообщение об ошибке и подумал, что это было разрешением, потому что разрешение на доступ в интернет не отображается в информации приложения.экран.Это никогда не происходит, потому что это не «опасное» разрешение, как я многому научился.

Подводя итог: Получить разрешение на подключение к интернету на Android так же просто, как добавить разрешение вAndroidManifest.xml.

0 голосов
/ 25 февраля 2019

Интернет Разрешение в обычном разрешении. Это разрешение автоматически разрешается системой Android.

Требуется только чувствительное разрешение, например CALL_LOG, SMS и т. Д. Разрешение во время выполнения.

Попробуйте это

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

Если вы используете мобильные данные, вам нужно только разрешение ИНТЕРНЕТ, но если вы используете Wi-Fi или другую сеть, вам нужно разрешение ACCESS_NETWORK_STATE,

Примечание - сетевое разрешениене требуется разрешение Runtime.

0 голосов
/ 25 февраля 2019

Вам не нужно специальное разрешение для Интернета.

Просто определите разрешение в манифесте

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

для целей тестирования вы можете проверить подключение к интернету, добавьте ниже разрешение в файле манифеста Android.Это Разрешение дает вам, каково состояние (Состояние) вашего интернет-соединения.

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Здесь тестовый код, который вы можете использовать для проверки вашего интернет-соединения.Функция isNetwork возвращает true, если интернет-служба работает, в противном случае возвращает false.

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main)


        if (isNetwork(getApplicationContext())){

        Toast.makeText(getApplicationContext(), "Internet Connected", Toast.LENGTH_SHORT).show()

        } else {

        Toast.makeText(getApplicationContext(), "Internet Connected", Toast.LENGTH_SHORT).show()
        }
    }


    public boolean isNetwork(Context context) {

        ConnectivityManager cm = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (netInfo != null && netInfo.isConnectedOrConnecting()) {
            return true;
        }
        return false;
    }

}
0 голосов
/ 25 февраля 2019

Разрешения разделены на несколько уровней защиты

Существует три уровня защиты, которые влияют на сторонние приложения: обычный , подпись и опасный *Разрешения 1008 *

INTERNET имеют уровень нормальная защита и поэтому не требуется запрашивать во время выполнения

см. Список здесь

Что такое нормальное и опасное разрешение?

Нормальное :

Разрешения, которые не являются чувствительнымии вредно для пользователей, например.как ВИБРАТЬ и ИНТЕРНЕТ

Опасно :

Разрешения, которые являются чувствительными и вредными, как после разрешения READ_CONTACTS, приложение может неправильно использовать ваши контактные данные или разрешить READ_EXTERNAL_STORAGE может получить доступ к данным вашей SD-карты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...