在我的应用程序中,我需要Android互联网权限。
我已在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;
}
}
}
但是,当我启动我的应用程序并参加活动时,没什么好看的。 如果我进入应用程序设置模拟器,我只能看到2个权限。
我在其他应用中使用此类请求没有问题
谢谢。
修改
对于所有评论,请输入以下内容: &#34;没有必要请求,因为:如果某个应用声明它需要正常权限,系统会自动向该应用授予权限#34;
这是正确的。 抱歉这个愚蠢的问题。 我知道默认许可的问题,但我的appa无论如何都没有用,因为它在Internet权限中给出了错误。 我创建了一个新的模拟器,现在似乎已经开始了。
答案 0 :(得分:2)
并非所有权限都需要由用户授予。根据{{3}}
系统权限分为两类:普通和危险:
正常权限不会直接影响用户的隐私。如果您的应用在其清单中列出了正常权限,系统会自动授予权限。
危险权限可让应用访问用户的机密数据。如果您的应用在其清单中列出了正常权限,系统会自动授予权限。如果您列出了危险权限,则用户必须明确批准您的应用。
如果权限属于Android Documentation类别(例如:位置,存储,相机等),则只需要检查权限
答案 1 :(得分:0)
默认授予Internet权限。
它不需要用户授予它,因此您已经拥有互联网权限,只需启用您的互联网。
答案 2 :(得分:0)
正常权限涵盖了您的应用需要访问数据的区域 应用程序沙箱之外的资源,但那里的资源非常少 对用户的隐私或其他应用程序的操作造成风险。对于 例如,设置时区的权限是正常权限。如果 app声明它需要一个正常的权限,即系统 自动授予应用程序的权限。有关的完整列表 当前的常规权限,请参阅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