gpt4 book ai didi

java - Android Studio 无法识别 AndroidManifest 中的使用权限

转载 作者:行者123 更新时间:2023-12-04 23:51:31 25 4
gpt4 key购买 nike

我遇到了问题,我的 Android Studio 似乎无法识别我的 AndroidManifest.xml 文件中的使用权限。在我的主要 Activity 中,当我尝试调用一些需要 INTERNET 和 ACCESS_NETWORK_STATE 的函数时,该 Activity 似乎无法识别我已经将权限放入 AndroidManifest.xml 文件中。

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
以下是调用 ACCESS_NETWORK_STATE 的方法。调用时的部分
public boolean isNetworkAvailable(Context context) {
boolean isOnline = false;
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
try {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
NetworkCapabilities capabilities = manager.getNetworkCapabilities(manager.getActiveNetwork());
isOnline = capabilities != null && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
} else {
NetworkInfo activeNetworkInfo = manager.getActiveNetworkInfo();
isOnline = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting();
}
} catch (Exception e) {
e.printStackTrace();
}
return isOnline;
}

private void showConnectDialog() {
Log.d(TAG, "showConnectDialog: trying to show the connect dialog");
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this,R.style.MyAlertDialogStyle);
builder.setMessage("Please connect to the internet to proceed further")
.setCancelable(false)
.setPositiveButton("Connect", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
}
});
builder.show();
}
在我的主要 Activity oncreate 中:
if (!isNetworkAvailable(MainActivity.this)){
showConnectDialog();
}
if (isServicesOK()) {
init();
}

MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
AdView mAdView = findViewById(R.id.adViewMain);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
您可以在图片(附在下面)中看到,我的 isNetworkAvailable 方法和 Google AdMob 都有错误。如果我将鼠标悬停在错误上,Android Studio 会提到我需要为 isNetworkAvailable 方法添加 ACCESS_NETWORK_STATE 权限,并为 Google AdMob 添加 INTERNET 权限。但我的 AndroidManifest.xml 中已经有了它们。 我还缺少什么吗? 非常感谢您的帮助。
Error in Google AdMob
Error in isNetworkAvailable method

最佳答案

您的 AndroidManifest.xml 文件中可能有问题。当您打开 AndroidManifest.xml 时,单击“Merged Manifest”按钮。如果你有问题,它可能会告诉你。

关于java - Android Studio 无法识别 AndroidManifest 中的使用权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68273016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com