android - ERR_CLEARTEXT_NOT_PERMITTED
问题描述
我用 android studio 制作了一个 android 应用程序。有 3 种权限使用互联网,网络状态,wifi 状态。我创建了一个签名的 apk 文件。但是在安装应用程序后,当我尝试进入此应用程序时,它显示 ERR_CLEARTEXT_NOT_PERMITTED
我尝试了不同的设备。
这是我的安卓清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.androapp.****">
<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" />
<application
android:allowBackup="true"
android:icon="@drawable/**_logoo"
android:label="@string/app_name"
android:roundIcon="@drawable/**_logoo"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:testOnly="false">
<activity android:name="com.androapp.pciu.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
这是我的java代码:
package com.androapp.***;
import android.content.Context;
import android.content.DialogInterface;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private WebView myWebView;
Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(!isConnected(MainActivity.this))
buildDialog(MainActivity.this).show();
else {
}
toolbar = (Toolbar) findViewById(R.id.ttoolbar);
setSupportActionBar(toolbar);
myWebView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("*************");
myWebView.setWebViewClient(new WebViewClient());
}
public boolean isConnected(Context context) {
ConnectivityManager cm = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netinfo = cm.getActiveNetworkInfo();
if (netinfo != null && netinfo.isConnectedOrConnecting()) {
android.net.NetworkInfo wifi =
cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
android.net.NetworkInfo mobile =
cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if((mobile != null && mobile.isConnectedOrConnecting()) || (wifi
!= null && wifi.isConnectedOrConnecting())) return true;
else return false;
} else
return false;
}
public AlertDialog.Builder buildDialog(Context c) {
AlertDialog.Builder builder = new AlertDialog.Builder(c);
builder.setTitle("No Internet Connection");
builder.setMessage("Please make sure your device connected to the
Internet.");
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
return builder;
}
@Override
public void onBackPressed() {
if(myWebView.canGoBack()){
myWebView.goBack();
} else {
super.onBackPressed();
}
}
}
解决方案
推荐阅读
- bash - Docker compose 项目名称在 bash 中隐藏下划线,但在 gitlab-CI 中没有
- git - 如何在克隆或将 git 存储库拉到服务器后修复错误权限被拒绝
- reactjs - React native - 在 this.props 之后返回一个字符串
- python - 如何打印动态变量?
- kubernetes - Istio 检查已安装的内容
- google-pagespeed - 4种场景下的累积布局偏移为0?
- c - 如何通过启用 modminer 选项交叉编译 arm 32 位的 cgminer 代码?
- math - 以二进制形式连接前 n 个数字,转换为以 10 为基数
- ios - SwiftUI ForEach 中的动态绑定字段
- java - 从中选择随机值
使用硒的下拉菜单?