📜  互联网访问 android 清单 (1)

📅  最后修改于: 2023-12-03 15:21:41.867000             🧑  作者: Mango

互联网访问 Android 清单

如果你正在编写一款 Android 应用程序,并需要让其访问互联网,那么你需要在清单文件中进行一些配置。本文将介绍这些配置。

添加权限声明

首先,在清单文件中添加访问互联网所需的权限声明。

<uses-permission android:name="android.permission.INTERNET" />
声明网络状态

如果你需要检查设备的网络状态,那么你需要添加网络状态的声明。这个声明可以让 Android 知道你的应用程序需要访问网络状态。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
配置代理

如果你的应用程序需要通过代理服务器访问互联网,那么你需要在清单文件中进行一些额外的配置。

<application android:usesCleartextTraffic="true">
    <uses-library android:name="org.apache.http.legacy" android:required="false" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</application>

以上配置中,android:usesCleartextTraffic="true" 表示你的应用程序可以通过 HTTP 的明文方式进行通信。这通常会存在一些安全风险,因此请根据需要进行设置。

<uses-library android:name="org.apache.http.legacy" android:required="false" /> 表示使用旧版 Apache HTTP 客户端库。

HTTPS

如果你使用的是 HTTPS 协议来访问互联网,那么你需要获取一个 SSL 证书。然后在清单文件中添加下面的代码:

<application>
    <!-- SSL Certificate Pinning -->
    <meta-data android:name="com.example.ssl.CERTIFICATE_HASH"
        android:value="SHA256:C2:AD:67:31:93:9B:91:7F:62:C1:A4:B4:F4:DC:4E:02:84:76:DC:9D:0E:31:5E:BE:B3:31:0B:E5:B6:3E:D3:79" />
        ...
</application>

其中,com.example.ssl.CERTIFICATE_HASH 是你证书的唯一标识符。运行你的应用程序,然后使用日志记录来查看证书的指纹。

try {
    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    InputStream caInput = new BufferedInputStream(new FileInputStream("mycert.crt"));
    Certificate ca;
    try {
        ca = cf.generateCertificate(caInput);
        System.out.println("ca=" + ((X509Certificate) ca).getSubjectDN());
        System.out.println("key=" + ca.getPublicKey());
    } finally {
        caInput.close();
    }
} catch (CertificateException e) {
    e.printStackTrace();
}
结论

以上是在 Android 应用程序中访问互联网时需要进行的配置。保持你的代码片段有用而简洁,你的用户将感谢你!