从Android应用程序访问Internet需要什么权限?

在Android应用程序中,为了访问互联网或检查网络状态,需要在AndroidManifest.xml文件中添加INTERNET权限。虽然最新版Google Play可能不再强制要求,但为了兼容旧版本,建议保留该权限声明。用户应在<application>标签外添加相应的权限代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在运行我的应用程序时遇到以下异常:

java.net.SocketException: Permission denied (maybe missing INTERNET permission)

如何解决缺少权限的问题?


#1楼

像下面这样放在上面

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.avocats.activeavocats"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="16" />

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

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >


    <activity
        android:name="com.example.exp.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>


#2楼

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

#3楼

更新:
Google不再需要获得互联网许可以获取最新版本的Google Play。

将[INTERNET] [1]权限添加到清单文件中。

您必须添加以下行:

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

在AndroidManifest.xml中的应用程序标记之外

[1]: https//developer.android.com/training/basics/network-ops/connecting.html


#4楼

在最新版的Google Play中,由于“当今大多数应用仍需要互联网”,因此Google不再要求获得互联网许可。 但是,对于使用旧版本的用户,仍然建议将以下代码保留在清单中

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

#5楼

如果仅使用互联网,则使用-

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

如果您正在获取互联网状态,请同时使用-

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

在应用程序标签上方。


#6楼

如果要在应用程序中使用Internet并检查网络状态,即应用程序是否已连接到Internet,则必须使用application标记之外的以下代码。

互联网许可:

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

对于访问网络状态:

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

完整的代码:

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="16" />

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

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >


    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

#7楼

忘记将权限添加到清单中了将此代码添加为方法

public static boolean hasPermissions(Context context, String... permissions)
{
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null)
    {
        for (String permission : permissions)
        {
            if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED)
            {
                return false;
            }
        }
    }
    return true;
}

并写在你的

int PERMISSION_ALL = 1;
    String[] PERMISSIONS = {Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_SMS, Manifest.permission.CAMERA};

    if (!hasPermissions(this, PERMISSIONS)) {
        ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
    }

#8楼

只需将以下代码放入AndroidManifest中:

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

#9楼

根据当前版本,Android不会征求与互联网交互的权限,但是您可以添加以下代码,这将对使用旧版本的用户有所帮助,只需在AndroidManifest中添加这些代码即可

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

#10楼

使用这些:

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

#11楼

要在代码中请求互联网许可,您必须将其添加到AndroidManifest.xml文件中

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

有关更多详细说明,请转到https://developer.android.com/training/basics/network-ops/connecting


#12楼

Google无需再要求获得互联网的最新版本许可。 不过,要在代码中请求Internet许可,您必须将它们添加到AndroidManifest.xml文件中。

<uses-permission android:name="android.permission.INTERNET"/>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值