[英]How do I get permissions only in AndroidManifest.xml file for installed apps in android device?
我正在開發一個可以進行基於權限的搜索的Android應用程序。 我有一個代碼,用於解析apk文件中的AndroidManifest.xml文件。
此代碼解析xml文件並輸出如下結果:
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_CONTACTS
android.permission.WRITE_CONTACTS
android.permission.ACCESS_NETWORK_STATE
android.permission.INTERNET
我有一個名為PInfo的模型。 此模型具有名為權限的ArrayList。 當您在Android上獲得“PackageInfo”權限時,它會給出以下結果。
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_CONTACTS
android.permission.WRITE_CONTACTS
android.permission.ACCESS_NETWORK_STATE
android.permission.INTERNET
android.permission.WAKE_LOCK
com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE
com.google.android.c2dm.permission.RECEIVE
android.permission.READ_EXTERNAL_STORAGE
AndroidManifest.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.omfaer.minion">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name="com.omfaer.minion.activities.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.omfaer.minion.activities.HomeActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".activities.WallpapersActivity"/>
<provider
android:exported="false"
android:grantUriPermissions="true"
android:authorities="${applicationId}.provider"
android:name="android.support.v4.content.FileProvider">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_path"
/>
</provider>
</application>
</manifest>
PackageInfo代碼:
List<PackageInfo> packs = context.getPackageManager().getInstalledPackages(context.getPackageManager().GET_PERMISSIONS);
for (int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
PInfo deviceApps = new PInfo();
deviceApps.appName = p.applicationInfo.loadLabel(context.getPackageManager()).toString();
deviceApps.appPackage = p.packageName;
deviceApps.appIconId = p.applicationInfo.icon;
StringBuilder strBuilderPermissions = new StringBuilder();
try {
if (p.requestedPermissions != null) {
for (String perms : p.requestedPermissions) {
deviceApps.permissions.add(perms);
}
}
} catch (Exception e) {
//Log.v("PUCA for add permissions ", e.toString());
}
}
我想在Android端得到這個結果。
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_CONTACTS
android.permission.WRITE_CONTACTS
android.permission.ACCESS_NETWORK_STATE
android.permission.INTERNET
這應該為數千個應用程序提供准確的結果。 我能怎么做?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.