android:targetSdkVersion
时间: 2024-06-12 22:08:59 浏览: 97
android:targetSdkVersion 是一个在 AndroidManifest.xml 文件中的属性,它用于指定应用程序的目标 SDK 版本。目标 SDK 版本是 Android 提供向前兼容性的主要方式之一。系统使用 targetSdkVersion 属性来判断应用程序是否需要执行特定的行为或采用特定的行为。通过调用 getApplicationInfo().targetSdkVersion 方法,我们可以获取 targetSdkVersion 的值来进行判断。
相关问题
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="edu.hrbeu.helloandroid" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="21" /> <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> </manifest>这段代码是什么意思,请详细说明一下这个代码的内容是什么?
这段代码是 Android 应用程序的清单文件(AndroidManifest.xml),它包含了应用程序的基本信息和组件的声明。下面是代码的详细解释:
第1行:是 XML 的声明,指明了 XML 的版本和编码方式。
第2-4行:是清单文件的根元素,包含了应用程序的包名和版本信息。
第6-8行:指定了应用程序的最低版本和目标版本。
第10-17行:是应用程序的组件声明,这里只有一个活动(Activity),即程序启动时默认启动的活动(MainActivity),它的标签包含了活动的名称和标签,以及一个 intent-filter 元素,用于指定活动可以响应哪些 intent。
第18-20行:是应用程序的其他元素声明,在这里没有其他元素。
android targetsdkversion 32 文件权限
从 Android 11 开始,目标 SDK 版本为 30 或更高版本的应用程序需要更加严格的文件权限控制。对于大多数应用程序来说,这意味着他们需要在 AndroidManifest.xml 文件中声明访问外部存储的权限。
为了访问外部存储空间,必须在 AndroidManifest.xml 文件中声明以下权限:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
在 Android 11 及更高版本中,还需要在应用程序的代码中请求 MANAGE_EXTERNAL_STORAGE 权限,以便对外部存储进行读取和写入操作。可以使用以下代码请求此权限:
```java
private static final int REQUEST_CODE = 42;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R
&& !Environment.isExternalStorageManager()) {
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
Uri uri = Uri.fromParts("package", getActivity().getPackageName(), null);
intent.setData(uri);
startActivityForResult(intent, REQUEST_CODE);
}
```
在此代码中,如果设备的 Android 版本为 Android 11 及更高版本,并且应用程序没有 MANAGE_EXTERNAL_STORAGE 权限,则会启动一个设置界面,要求用户授予此权限。