10

我们如何在 android 11 中获取所有已安装的应用程序?对于 Android 10,它运行良好,但是当我更新到 android 11 时,它们都消失了。

4

2 回答 2

10

从 Android 11 开始,Google 引入了一项新权限,可以查询 Android 设备上所有已安装的应用程序。因此,如果您出于某种原因想要在您的应用程序中获取所有应用程序,那么只需在您的清单中添加以下权限

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

或者对于特定类别的应用程序,您可以在清单中使用它。例如,如果您只想要具有android.intent.category.HOME类别的应用程序,则添加此代码。

<queries>
        <intent>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.HOME" />
        </intent>
</queries> 
于 2020-10-27T11:20:09.047 回答
3

更新到上述阿里的答案查询标签在应用程序标签下不起作用所以你必须像这样将它添加到清单标签之外

<manifest
<permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<uses-permission
        android:name="android.permission.PACKAGE_USAGE_STATS"
        tools:ignore="ProtectedPermissions" />
    <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
        </application>
        <queries>
            <intent>
                <action android:name="android.intent.action.MAIN" />
            </intent>
        </queries>
    </manifest>
于 2021-05-02T15:55:35.580 回答