2016-10-27 9 views
0

в моем приложении мне нужно разрешение на андроид-интернет.Андроид api 23 диалоговое предупреждение о предупреждении не отображается

У меня есть вставки разрешения в файле AndroidManifest.xml (с другими разрешениями)

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.CAMERA" /> 

build.gradle defaul конфигурация имеет правильный уровень API:

defaultConfig { 
     applicationId "com.mytry" 
     minSdkVersion 23 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 

и деятельность с интернет-звонок:

public class ActivityLoginScreen extends Activity{ 

    final int REQUEST_INTERNET = 1; 

    @Override 
    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 

     if (ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) { 

      if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.INTERNET)) { 
       //permesso già richiesto in precedenza. Negato dall'utente 
      } else { 
       ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.INTERNET}, REQUEST_INTERNET); 
      } 
     } 
    } 

    @Override 
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { 
     switch (requestCode) { 
      case REQUEST_INTERNET: { 
       if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
        Toast.makeText(this, "GRANTED", Toast.LENGTH_SHORT).show(); 
       } else { 
        Toast.makeText(this, "NO GRANTED", Toast.LENGTH_SHORT).show(); 
       } 
       return; 
      } 
     } 
    } 

Но когда я запускаю свое приложение и перехожу к активности n othing appare. Если я зашел в эмулятор настроек приложения, я могу видеть только 2 разрешения.

enter image description here Возможное решение этой проблемы? Где я ошибаюсь?

меня использовать этот тип запроса в других приложениях без проблем

спасибо.

EDIT:

Для всех типов комментариев это: «нет необходимости запроса, потому что: Если приложение заявляет, что оно нуждается в нормальное разрешении, система автоматически предоставляет разрешение на приложение»

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

+2

'android.permission.INTERNET' не считается опасным разрешение и, таким образом, предоставляется по умолчанию. Ни одно приложение не покажет разрешение в настройках приложения. Вы можете найти список всех разрешений здесь: https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous –

+0

вот пример https://stackoverflow.com/questions/38141523/directory -создание-не-рабочий-в-зефир-андроид/38141778 # 38141778 –

ответ

2

Не все разрешения должны предоставляться пользователем. По Android Documentation

системы разрешений разделены на две категории, нормальных и опасных:

  • Нормальные разрешения прямо не рискующих конфиденциальность пользователя. Если ваше приложение отображает нормальное разрешение в своем манифесте, система автоматически предоставляет разрешение.

  • Опасные разрешения могут предоставить приложению доступ к конфиденциальным данным пользователя. Если ваше приложение отображает нормальное разрешение в своем манифесте, система автоматически предоставляет разрешение. Если вы указываете опасное разрешение, пользователь должен явно предоставить одобрение вашему приложению.

Вам нужно только проверить разрешения, если разрешение принадлежит к dangerous permission категорий (Ex: Место, хранение, камера и т.д.)

0

Разрешение по умолчанию предоставляется по умолчанию.

Он не требует, чтобы пользователь предоставил его, поэтому у вас уже есть разрешение на доступ к Интернету, просто включите свой интернет.

0

Нормальных разрешения охватывают область, где ваше приложение должно получить доступ данных или ресурсов вне песочницы приложения, но там, где очень мало риск для конфиденциальности пользователя или для работы других приложений. Например, для разрешения разрешение на установку часового пояса является нормальным разрешением. Если приложение заявляет, что ему требуется нормальное разрешение, система автоматически предоставляет разрешение на приложение. Полный список текущих разрешений, см. Normal permissions.

На уровне API 23, следующие права классифицируются как PROTECTION_NORMAL:

Для них нет dailog будет показано, система пользователя будет автоматически выдавать разрешение.

ACCESS_LOCATION_EXTRA_COMMANDS 
ACCESS_NETWORK_STATE 
ACCESS_NOTIFICATION_POLICY 
ACCESS_WIFI_STATE 
BLUETOOTH 
BLUETOOTH_ADMIN 
BROADCAST_STICKY 
CHANGE_NETWORK_STATE 
CHANGE_WIFI_MULTICAST_STATE 
CHANGE_WIFI_STATE 
DISABLE_KEYGUARD 
EXPAND_STATUS_BAR 
GET_PACKAGE_SIZE 
INSTALL_SHORTCUT 
INTERNET 
KILL_BACKGROUND_PROCESSES 
MODIFY_AUDIO_SETTINGS 
NFC 
READ_SYNC_SETTINGS 
READ_SYNC_STATS 
RECEIVE_BOOT_COMPLETED 
REORDER_TASKS 
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 
REQUEST_INSTALL_PACKAGES 
SET_ALARM 
SET_TIME_ZONE 
SET_WALLPAPER 
SET_WALLPAPER_HINTS 
TRANSMIT_IR 
UNINSTALL_SHORTCUT 
USE_FINGERPRINT 
VIBRATE 
WAKE_LOCK 
WRITE_SYNC_SETTINGS 

Всех опасных разрешения Android системы принадлежит группам разрешений. Если устройство работает под управлением Android 6.0 (уровень API 23)

PROTECTION_DANGEROUS разрешений:

Эти разрешения будут показывать диалог для пользователей. Sample Code

READ_CALENDAR 
WRITE_CALENDAR 
CAMERA 
READ_CONTACTS 
WRITE_CONTACTS 
GET_ACCOUNTS 
ACCESS_FINE_LOCATION 
ACCESS_COARSE_LOCATION 
RECORD_AUDIO 
READ_PHONE_STATE 
CALL_PHONE 
READ_CALL_LOG 
WRITE_CALL_LOG 
ADD_VOICEMAIL 
USE_SIP 
PROCESS_OUTGOING_CALLS 
BODY_SENSORS 
SEND_SMS 
RECEIVE_SMS 
READ_SMS 
RECEIVE_WAP_PUSH 
RECEIVE_MMS 
READ_EXTERNAL_STORAGE 
WRITE_EXTERNAL_STORAGE 

 Смежные вопросы

  • Нет связанных вопросов^_^