Android获取安装应用所需权限

整理了一百多个常见权限,目前还在完善中,后面最终代码会发布到我的Github上。今天先看看初步效果:

Main.java:

package com.zms.getpermission;

import android.app.ListActivity;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * Created by AlexZhou on 2015/1/27.
 * 8:48
 */
public class Main extends ListActivity {

    HashMap<String, String[]> hashMap = new HashMap<String, String[]>();
    List<String> dataAppList = new ArrayList<String>();
    List<String> systemAppList = new ArrayList<String>();

    protected void onCreate(android.os.Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        PackageManager pm = getPackageManager();
        Intent query = new Intent(Intent.ACTION_MAIN);
        query.addCategory("android.intent.category.LAUNCHER");
        List<ResolveInfo> resolves = pm.queryIntentActivities(query, PackageManager.GET_ACTIVITIES);

        dataAppList.add("");
        for (int i = 0; i < resolves.size(); i++) {
            ResolveInfo info = resolves.get(i);
            String packageName = info.loadLabel(pm).toString();
            String[] permission;
            try {
                permission = pm.getPackageInfo(info.activityInfo.packageName,
                        PackageManager.GET_PERMISSIONS).requestedPermissions; //获取权限列表
                if (isSystemApp(info)) { // 是否为系统应用
                    systemAppList.add(packageName);
                } else {
                    dataAppList.add(packageName);
                }
                hashMap.put(packageName, permission);
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
            }
        }
        dataAppList.set(0, "===== Data Apps(" + dataAppList.size() + ") =====");
        dataAppList.add("");
        dataAppList.add("===== System Apps(" + systemAppList.size() + ") =====");
        dataAppList.addAll(systemAppList);

        getListView().setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
                dataAppList));
        getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
                String[] permission = hashMap.get(dataAppList.get(position));
                StringBuilder stringBuilder = new StringBuilder();
                for (int i = 0; i < permission.length; i++) {
                    stringBuilder.append(getPermissionDetail(permission[i]) + "\n");
                }
                Intent intent = new Intent(Main.this, ShowPermission.class);
                intent.putExtra("strPermission", dataAppList.get(position) + " has " + permission.length
                        + " Permission(s):\n\n" + stringBuilder);
                startActivity(intent);
            }
        });
    }

    private boolean isSystemApp(ResolveInfo resolveInfo) {
        if ((resolveInfo.activityInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) {
            return false;
        } else {
            return true;
        }
    }

    public String getPermissionDetail(String strPermission) {
        /***** A *****/
        if (strPermission.equals("android.permission.ACCESS_CHECKIN_PROPERTIES")) {
            return getResources().getString(R.string.ACCESS_CHECKIN_PROPERTIES);
        } else if (strPermission.equals("android.permission.ACCESS_COARSE_LOCATION")) {
            return getResources().getString(R.string.ACCESS_COARSE_LOCATION);
        } else if (strPermission.equals("android.permission.ACCESS_FINE_LOCATION")) {
            return getResources().getString(R.string.ACCESS_FINE_LOCATION);
        } else if (strPermission.equals("android.permission.ACCESS_LOCATION_EXTRA_COMMANDS")) {
            return getResources().getString(R.string.ACCESS_LOCATION_EXTRA_COMMANDS);
        } else if (strPermission.equals("android.permission.ACCESS_MOCK_LOCATION")) {
            return getResources().getString(R.string.ACCESS_MOCK_LOCATION);
        } else if (strPermission.equals("android.permission.ACCESS_NETWORK_STATE")) {
            return getResources().getString(R.string.ACCESS_NETWORK_STATE);
        } else if (strPermission.equals("android.permission.ACCESS_SURFACE_FLINGER")) {
            return getResources().getString(R.string.ACCESS_SURFACE_FLINGER);
        } else if (strPermission.equals("android.permission.ACCESS_WIFI_STATE")) {
            return getResources().getString(R.string.ACCESS_WIFI_STATE);
        } else if (strPermission.equals("android.permission.ACCOUNT_MANAGER")) {
            return getResources().getString(R.string.ACCOUNT_MANAGER);
        } else if (strPermission.equals("android.permission.AUTHERTICATE_ACCOUTS")) {
            return getResources().getString(R.string.AUTHERTICATE_ACCOUTS);
        }
        /***** B *****/
        else if (strPermission.equals("android.permission.BATTERY_STATS")) {
            return getResources().getString(R.string.BATTERY_STATS);
        } else if (strPermission.equals("android.permission.BIND_APPWIDGET")) {
            return getResources().getString(R.string.BIND_APPWIGET);
        } else if (strPermission.equals("android.permission.BIND_DEVICE_ADMIN")) {
            return getResources().getString(R.string.BIND_DEVICE_ADMIN);
        } else if (strPermission.equals("android.permission.BIND_INPUT_METHOD")) {
            return getResources().getString(R.string.BIND_INPUT_METHOD);
        } else if (strPermission.equals("android.permission.BIND_WALLPAPER")) {
            return getResources().getString(R.string.BIND_WALLPAPER);
        } else if (strPermission.equals("android.permission.BLUETOOTH")) {
            return getResources().getString(R.string.BLUETOOTH);
        } else if (strPermission.equals("android.permission.BLUETOOTH_ADMIN")) {
            return getResources().getString(R.string.BULETOOTH_ADMIN);
        } else if (strPermission.equals("android.permission.BRICK ")) {
            return getResources().getString(R.string.BRICK);
        } else if (strPermission.equals("android.permission.BROADCAST_PACKAGE_REMOVED")) {
            return getResources().getString(R.string.BROADCAST_PACKAGE_REMOVED);
        } else if (strPermission.equals("android.permission.BROADCAST_SMS")) {
            return getResources().getString(R.string.BROADCAST_SMS);
        } else if (strPermission.equals("android.permission.BROADCAST_STICKY")) {
            return getResources().getString(R.string.BROADCAST_STICKY);
        }
        /***** C *****/
        else if (strPermission.equals("android.permission.CALL_PHONE")) {
            return getResources().getString(R.string.CALL_PHONE);
        } else if (strPermission.equals("android.permission.CALL_PRIVILEGED")) {
            return getResources().getString(R.string.CALL_PRIVILEGED);
        } else if (strPermission.equals("android.permission.CAMERA")) {
            return getResources().getString(R.string.CAMERA);
        } else if (strPermission.equals("android.permission.CHANGE_COMPONENT_ENABLED_STATE")) {
            return getResources().getString(R.string.CHANGE_COMPONENT_ENABLED_STATE);
        } else if (strPermission.equals("android.permission.CHANGE_NETWORK_STATE")) {
            return getResources().getString(R.string.CHANGE_NETWORK_STATE);
        } else if (strPermission.equals("android.permission.CHANGE_WIFI_MULTICAST_STATE")) {
            return getResources().getString(R.string.CHANGE_WIFIMULTICAST_STATE);
        } else if (strPermission.equals("android.permission.CHANGE_WIFI_STATE")) {
            return getResources().getString(R.string.CHANGE_WIFI_STATE);
        } else if (strPermission.equals("android.permission.CLEAR_APP_CACHE")) {
            return getResources().getString(R.string.CLEAR_APP_CACHE);
        } else if (strPermission.equals("android.permission.CLEAR_APP_USER_DATA")) {
            return getResources().getString(R.string.CLEAR_APP_USER_DATA);
        } else if (strPermission.equals("android.permission.CONTROL_LOCATION_UPDATES")) {
            return getResources().getString(R.string.CONTROL_LOCATION_UPDATES);
        }
        /***** D *****/
        else if (strPermission.equals("android.permission.DELETE_CACHE_FILES")) {
            return getResources().getString(R.string.DELETE_CACHE_FILES);
        } else if (strPermission.equals("android.permission.DELETE_PACKAGES")) {
            return getResources().getString(R.string.DLEETE_PACKAGES);
        } else if (strPermission.equals("android.permission.DEVICE_POWER")) {
            return getResources().getString(R.string.DEVICE_POWER);
        } else if (strPermission.equals("android.permission.DIAGNOSTIC")) {
            return getResources().getString(R.string.DIAGNOSTIC);
        } else if (strPermission.equals("android.permission.DISABLE_KEYGUARD")) {
            return getResources().getString(R.string.DISABLE_KEYGUARD);
        } else if (strPermission.equals("android.permission.DUMP")) {
            return getResources().getString(R.string.DUMP);
        }
        /***** E *****/
        else if (strPermission.equals("android.permission.EXPAND_STATUS_BAR")) {
            return getResources().getString(R.string.EXPAND_STATUS_BAR);
        }
        /***** F *****/
        else if (strPermission.equals("android.permission.FACTORY_TEST")) {
            return getResources().getString(R.string.FACTORY_TEST);
        } else if (strPermission.equals("android.permission.FLASHLIGHT")) {
            return getResources().getString(R.string.FLSHLIGHT);
        } else if (strPermission.equals("android.permission.FORCE_BACK")) {
            return getResources().getString(R.string.FORCE_BACK);
        }
        /***** G *****/
        else if (strPermission.equals("android.permission.GET_ACCOUNTS")) {
            return getResources().getString(R.string.GET_ACCOUNTS);
        } else if (strPermission.equals("android.permission.GET_PACKAGE_SIZE")) {
            return getResources().getString(R.string.GET_PACKAGE_SIZE);
        } else if (strPermission.equals("android.permission.GET_TASKS")) {
            return getResources().getString(R.string.GET_TASKS);
        } else if (strPermission.equals("android.permission.GLOBAL_SEARCH")) {
            return getResources().getString(R.string.GLBOAL_SEARCH);
        }
        /***** H *****/
        else if (strPermission.equals("android.permission.HARDWARE_TEST ")) {
            return getResources().getString(R.string.HARDWARE_TEST);
        }
        /***** I *****/
        else if (strPermission.equals("android.permission.INJECT_EVENTS")) {
            return getResources().getString(R.string.INJECT_EVENTS);
        } else if (strPermission.equals("android.permission.INSTALL_LOCATION_PROVIDER")) {
            return getResources().getString(R.string.INSTALL_LOCATION_PROVIDER);
        } else if (strPermission.equals("android.permission.INSTALL_PACKAGES")) {
            return getResources().getString(R.string.INSTALL_PCAKAGES);
        } else if (strPermission.equals("android.permission.INTERNAL_SYSTEM_WINDOW")) {
            return getResources().getString(R.string.INTERNAL_SYSTEM_WINDOW);
        } else if (strPermission.equals("android.permission.INTERNET")) {
            return getResources().getString(R.string.INTERNET);
        }
        /***** K *****/
        else if (strPermission.equals("android.permission.KILL_BACKGROUND_PROCESSES")) {
            return getResources().getString(R.string.KILL_BACKGROUND_PROCESSES);
        }
        /***** L *****/
        else if (strPermission.equals("com.android.launcher.permission.INSTALL_SHORTCUT")) {
            return getResources().getString(R.string.LAUNCHER_INSTALL_SHORTCUT);
        } else if (strPermission.equals("com.android.launcher.permission.UNINSTALL_SHORTCUT")) {
            return getResources().getString(R.string.LAUNCHER_UNINSTALL_SHORTCUT);
        } else if (strPermission.equals("com.android.launcher.permission.READ_SETTINGS")) {
            return getResources().getString(R.string.LAUNCHER_READ_SETTINGS);
        } else if (strPermission.equals("com.android.launcher.permission.WRITE_SETTINGS")) {
            return getResources().getString(R.string.LAUNCHER_WRITE_SETTINGS);
        }
        /***** M *****/
        else if (strPermission.equals("android.permission.MANAGE_ACCOUNTS")) {
            return getResources().getString(R.string.MANAGE_ACCOUNTS);
        } else if (strPermission.equals("android.permission.MANAGE_APP_TOKENS")) {
            return getResources().getString(R.string.MANAGE_APP_TOKENS);
        } else if (strPermission.equals("android.permission.MASTER_CLEAR")) {
            return getResources().getString(R.string.MASTER_CLEAR);
        } else if (strPermission.equals("android.permission.MODIFY_AUDIO_SETTINGS")) {
            return getResources().getString(R.string.MODIFY_AUDIO_SETTINGS);
        } else if (strPermission.equals("android.permission.MODIFY_PHONE_STATE")) {
            return getResources().getString(R.string.MODIFY_PHONE_STATE);
        } else if (strPermission.equals("android.permission.MOUNT_FORMAT_FILESYSTEMS")) {
            return getResources().getString(R.string.MOUNT_FORMAT_FILESYSTEMS);
        } else if (strPermission.equals("android.permission.MOUNT_UNMOUNT_FILESYSYTEMS")) {
            return getResources().getString(R.string.MOUNT_UNMOUNT_FILESYSYTEMS);
        }
        /***** N *****/
        else if (strPermission.equals("android.permission.NFC")) {
            return getResources().getString(R.string.NFC);
        }
        /***** P *****/
        else if (strPermission.equals("android.permission.PERSISTENT_ACTIVITY")) {
            return getResources().getString(R.string.PERSISTENT_ACTIVITY);
        } else if (strPermission.equals("android.permission.PROCESS_OUTGOING_CALLS")) {
            return getResources().getString(R.string.PROCESS_OUTGOING_CALLS);
        }
        /***** R *****/
        else if (strPermission.equals("android.permission.READ_CALENDAR")) {
            return getResources().getString(R.string.READ_CALENDAR);
        } else if (strPermission.equals("android.permission.READ_CONTACTS")) {
            return getResources().getString(R.string.READ_CONTACTS);
        } else if (strPermission.equals("android.permission.READ_FRAME_BUFFER")) {
            return getResources().getString(R.string.READ_FRAME_BUFFER);
        } else if (strPermission.equals("android.permission.READ_HISTORY_BOOKMARKS")) {
            return getResources().getString(R.string.READ_HISTORY_BOOKMARKS);
        } else if (strPermission.equals("android.permission.READ_INPUT_STATE")) {
            return getResources().getString(R.string.READ_INPUT_STATE);
        } else if (strPermission.equals("android.permission.READ_LOGS")) {
            return getResources().getString(R.string.READ_LOGS);
        } else if (strPermission.equals("android.permission.READ_OWNER_DATA")) {
            return getResources().getString(R.string.READ_OWNER_DATA);
        } else if (strPermission.equals("android.permission.READ_PHONE_STATE")) {
            return getResources().getString(R.string.READ_PHONE_STATE);
        } else if (strPermission.equals("android.permission.READ_SMS")) {
            return getResources().getString(R.string.READ_SMS);
        } else if (strPermission.equals("android.permission.READ_SYNC_SETTINGS")) {
            return getResources().getString(R.string.READ_SYNC_SETTINGS);
        } else if (strPermission.equals("android.permission.READ_SYNC_STATS")) {
            return getResources().getString(R.string.READ_SYNC_STATS);
        } else if (strPermission.equals("android.permission.REBOOT")) {
            return getResources().getString(R.string.REBOOT);
        } else if (strPermission.equals("android.permission.RECEIVE_BOOT_COMPLETED")) {
            return getResources().getString(R.string.RECEIVE_BOOT_COMPLETED);
        } else if (strPermission.equals("android.permission.RECEIVE_MMS")) {
            return getResources().getString(R.string.RECEIVE_MMS);
        } else if (strPermission.equals("android.permission.RECEIVE_WAP_PUSH")) {
            return getResources().getString(R.string.RECEIVE_WAP_PUSH);
        } else if (strPermission.equals("android.permission.RECORD_AUDIO")) {
            return getResources().getString(R.string.RECORD_AUDIO);
        } else if (strPermission.equals("android.permission.REORDER_TASKS")) {
            return getResources().getString(R.string.REORDER_TASKS);
        } else if (strPermission.equals("android.permission.RESTART_PACKAGES")) {
            return getResources().getString(R.string.RESTART_PACKAGES);
        } else if (strPermission.equals("android.permission.READ_EXTERNAL_STORAGE")) {
            return getResources().getString(R.string.READ_EXTERNAL_STORAGE);
        } else if(strPermission.equals("android.permission.READ_SECURE_SETTINGS")){
            return getResources().getString(R.string.READ_SECURE_SETTINGS);
        }
        /***** S *****/
        else if (strPermission.equals("android.permission.SEND_SMS")) {
            return getResources().getString(R.string.SEND_SMS);
        } else if (strPermission.equals("android.permission.SET_ACTIVITY_WATCHER")) {
            return getResources().getString(R.string.SET_ACTIVITY_WATHCER);
        } else if (strPermission.equals("android.permission.SET_ALWAYS_FINISH")) {
            return getResources().getString(R.string.SET_ALWAYS_FINISH);
        } else if (strPermission.equals("android.permission.SET_ANIMATION_SCALE")) {
            return getResources().getString(R.string.SET_ANIMATION_SCALE);
        } else if (strPermission.equals("android.permission.SET_DEBUG_APP")) {
            return getResources().getString(R.string.SET_DEBUG_APP);
        } else if (strPermission.equals("android.permission.SET_ORIENTATION")) {
            return getResources().getString(R.string.SET_ORIENTATION);
        } else if (strPermission.equals("android.permission.SET_PROCESS_LIMIT")) {
            return getResources().getString(R.string.SET_PROCESS_LIMIT);
        } else if (strPermission.equals("android.permission.SET_TIME")) {
            return getResources().getString(R.string.SET_TIME);
        } else if (strPermission.equals("android.permission.SET_TIME_ZONE")) {
            return getResources().getString(R.string.SET_TIME_ZONE);
        } else if (strPermission.equals("android.permission.SET_WALLPAPER")) {
            return getResources().getString(R.string.SET_WALLPAPER);
        } else if (strPermission.equals("android.permission.SET_WALLPAPER_HINTS")) {
            return getResources().getString(R.string.SET_WALLPAPER_HINTS);
        } else if (strPermission.equals("android.permission.SIGNAL_PERSISTENT_PROCESSES")) {
            return getResources().getString(R.string.SIGNAL_PERSISTENT_PROCESSES);
        } else if (strPermission.equals("android.permission.STATUS_BAR")) {
            return getResources().getString(R.string.STATUS_BAR);
        } else if (strPermission.equals("android.permission.SUBSCRIBED_FEEDS_READ")) {
            return getResources().getString(R.string.SUBSCRIBED_FEEDS_READ);
        } else if (strPermission.equals("android.permission.SUBSCRIBED_FEEDS_WRITE")) {
            return getResources().getString(R.string.SUBSRIBED_FEEDS_WRITE);
        } else if (strPermission.equals("android.permission.SYSTEM_ALERT_WINDOW")) {
            return getResources().getString(R.string.SYSYTEM_ALERT_WINDOW);
        }
        /***** U *****/
        else if (strPermission.equals("android.permission.UPDATE_DEVICE_STATS")) {
            return getResources().getString(R.string.UPDATE_DEVICE_STATS);
        } else if (strPermission.equals("android.permission.USE_CREDENTIALS")) {
            return getResources().getString(R.string.USE_CREDENTIALS);
        }
        /***** V *****/
        else if (strPermission.equals("android.permission.VIBRATE")) {
            return getResources().getString(R.string.VIBRATE);
        }
        /***** W *****/
        else if (strPermission.equals("android.permission.WAKE_LOCK")) {
            return getResources().getString(R.string.WAKE_LOCK);
        } else if (strPermission.equals("android.permission.WAP_PUSH")) {
            return getResources().getString(R.string.WAP_PUSH);
        } else if (strPermission.equals("android.permission.WRITE_APN_SETTINGS")) {
            return getResources().getString(R.string.WRITE_APN_SETTINGS);
        } else if (strPermission.equals("android.permission.WRITE_CALENDAR")) {
            return getResources().getString(R.string.WRITE_CALENDAR);
        } else if (strPermission.equals("android.permission.WRITE_CONTACTS")) {
            return getResources().getString(R.string.WRITE_CONTACTS);
        } else if (strPermission.equals("android.permission.WRITE_EXTERNAL_STORAGE")) {
            return getResources().getString(R.string.WRITE_EXTERNAL_STORAGE);
        } else if (strPermission.equals("android.permission.WRITE_GSERVICES")) {
            return getResources().getString(R.string.WRITE_GSERVICES);
        } else if (strPermission.equals("android.permission.WRITE_HISTORY_BOOKMARKS")) {
            return getResources().getString(R.string.WRITE_HISTORY_BOOKMARKS);
        } else if (strPermission.equals("android.permission.WRITE_OWNER_DATA")) {
            return getResources().getString(R.string.WRITE_OWNER_DATA);
        } else if (strPermission.equals("android.permission.WRITE_SECURE_SETTINGS")) {
            return getResources().getString(R.string.WRITE_SECURE_SETTINGS);
        } else if (strPermission.equals("android.permission.WRITE_SETTINGS")) {
            return getResources().getString(R.string.WRITE_SETTINGS);
        } else if (strPermission.equals("android.permission.WRITE_SMS")) {
            return getResources().getString(R.string.WRITE_SMS);
        } else if (strPermission.equals("android.permission.WRITE_SYNC_SETTINGS")) {
            return getResources().getString(R.string.WRITE_SYNC_SETTINGS);
        }
        /***** Other *****/
        else {
            return strPermission;
        }
    }
}

ShowPermission.java

package com.zms.getpermission;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

/**
 * Created by AlexZhou on 2015/1/27.
 * 8:53
 */
public class ShowPermission extends Activity {
    private TextView tvPermission;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.showpermission);
        tvPermission = (TextView) findViewById(R.id.tvPermission);
        String strPermission = getIntent().getStringExtra("strPermission");
        tvPermission.setText(strPermission);
    }
}

zh/Strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- A -->
    <string name="ACCESS_CHECKIN_PROPERTIES">读写检入数据库</string>
    <string name="ACCESS_COARSE_LOCATION">获取粗略位置</string>
    <string name="ACCESS_FINE_LOCATION">获取精确位置</string>
    <string name="ACCESS_LOCATION_EXTRA_COMMANDS">获取额外本地位置提供者</string>
    <string name="ACCESS_MOCK_LOCATION">创建模拟的位置服务用于测试</string>
    <string name="ACCESS_NETWORK_STATE">访问网络状态</string>
    <string name="ACCESS_SURFACE_FLINGER">使用SurfaceFlinger的底层属性</string>
    <string name="ACCESS_WIFI_STATE">获取WiFi状态</string>
    <string name="ACCOUNT_MANAGER">启动账户认证</string>
    <string name="AUTHERTICATE_ACCOUTS">充当账户认证管理者</string>
    <!-- B -->
    <string name="BATTERY_STATS">获取电池使用的统计信息</string>
    <string name="BIND_APPWIGET">访问AppWidget数据</string>
    <string name="BIND_DEVICE_ADMIN">设备管理服务必须拥有的权限,确保只有系统可以通过设备管理服务与设备进行
        互动(访问设备,数据交互)。</string>
    <string name="BIND_INPUT_METHOD">输入法服务必须拥有,确保只有系统可以绑定。</string>
    <string name="BIND_WALLPAPER">桌面服务(Wallpaper)必须拥有的权限,确保只有系统可以绑定。</string>
    <string name="BLUETOOTH">连接到已配对的蓝牙设备(远端蓝牙,非本机蓝牙)。</string>
    <string name="BULETOOTH_ADMIN">搜索并且配对蓝牙设备</string>
    <string name="BRICK">禁用设备(危险,慎用!)</string>
    <string name="BROADCAST_PACKAGE_REMOVED">发送应用程序被移除的广播</string>
    <string name="BROADCAST_SMS">发送收到短信广播</string>
    <string name="BROADCAST_STICKY">发送粘滞广播</string>
    <!-- C -->
    <string name="CALL_PHONE">不经过拨号界面直接拨号</string>
    <string name="CALL_PRIVILEGED">不经过拨号界面直接拨号(含紧急号码)</string>
    <string name="CAMERA">访问摄像头</string>
    <string name="CHANGE_COMPONENT_ENABLED_STATE">改变应用程序组件的启用状态(禁用或启用)</string>
    <string name="CHANGE_NETWORK_STATE">更改网络连接状态</string>
    <string name="CHANGE_WIFIMULTICAST_STATE">进入Wi-Fi Multicast多播模式</string>
    <string name="CHANGE_WIFI_STATE">更改Wi-Fi连接状态</string>
    <string name="CLEAR_APP_CACHE">清理已安装程序的缓存Cache</string>
    <string name="CLEAR_APP_USER_DATA">清理用户数据</string>
    <string name="CONTROL_LOCATION_UPDATES">启用或禁用位置更新提示信息</string>
    <!-- D -->
    <string name="DELETE_CACHE_FILES">删除Cache文件</string>
    <string name="DLEETE_PACKAGES">DLEETE.PACKAGES</string>
    <string name="DEVICE_POWER">访问底层的电源管理</string>
    <string name="DIAGNOSTIC">读写诊断资源</string>
    <string name="DISABLE_KEYGUARD">禁用锁屏</string>
    <string name="DUMP">从系统服务中抓取(检索)状态转储信息</string>
    <!-- E -->
    <string name="EXPAND_STATUS_BAR">扩张收缩状态栏</string>
    <!-- F -->
    <string name="FACTORY_TEST">以Root用户权限运行应用程序</string>
    <string name="FLSHLIGHT">控制闪光灯</string>
    <string name="FORCE_BACK">强制执行回退操作</string>
    <!-- G -->
    <string name="GET_ACCOUNTS">访问账号服务的账号列表</string>
    <string name="GET_PACKAGE_SIZE">获取任意包占用存储空间</string>
    <string name="GET_TASKS">获取当前或最近运行的任务信息</string>
    <string name="GLBOAL_SEARCH">允许Provider的数据被全局搜索</string>
    <!-- H -->
    <string name="HARDWARE_TEST">访问外设</string>
    <!-- I -->
    <string name="INJECT_EVENTS">允许一个应用程序向事件流(事件队列)注入用户事件(keys,touch,tarckball),并且将其传递给窗口。</string>
    <string name="INSTALL_LOCATION_PROVIDER">安装位置服务到位置管理器</string>
    <string name="INSTALL_PCAKAGES">安装应用</string>
    <string name="INTERNAL_SYSTEM_WINDOW">打开系统用户界面窗口</string>
    <string name="INTERNET">网络访问</string>
    <!-- K -->
    <string name="KILL_BACKGROUND_PROCESSES">杀死后台应用</string>
    <!-- M -->
    <string name="MANAGE_ACCOUNTS">管理AccountManager中的账户列表</string>
    <string name="MANAGE_APP_TOKENS">管理窗口管理器中的应用程序</string>
    <string name="MASTER_CLEAR">MASTER_CLEAR</string>
    <string name="MODIFY_AUDIO_SETTINGS">更改全局音频设置</string>
    <string name="MODIFY_PHONE_STATE">修改手机状态信息</string>
    <string name="MOUNT_FORMAT_FILESYSTEMS">格式化或移除移动存储设备</string>
    <string name="MOUNT_UNMOUNT_FILESYSYTEMS">挂载或卸载移动存储设备</string>
    <!-- P -->
    <string name="PERSISTENT_ACTIVITY">设置其activities具有持久性</string>
    <string name="PROCESS_OUTGOING_CALLS">监视、修改、忽略拨出的电话(拨号)</string>
    <!-- R -->
    <string name="READ_CALENDAR">读取用户日历数据</string>
    <string name="READ_CONTACTS">读取联系人列表</string>
    <string name="READ_FRAME_BUFFER">通过访问帧缓冲区获取屏幕截图等帧数据</string>
    <string name="READ_HISTORY_BOOKMARKS">读取浏览器的历史记录和书签</string>
    <string name="READ_INPUT_STATE">获取当前输入设备(keys和switches)的状态</string>
    <string name="READ_LOGS">读取底层系统的日志文件</string>
    <string name="READ_OWNER_DATA">读取设备所有者数据</string>
    <string name="READ_PHONE_STATE">读取手机状态</string>
    <string name="READ_SECURE_SETTINGS">读取安全设置</string>
    <string name="READ_SMS">读取短信</string>
    <string name="READ_SYNC_SETTINGS">读取同步设置</string>
    <string name="READ_SYNC_STATS">读取同步状态</string>
    <string name="REBOOT">重启设备</string>
    <string name="RECEIVE_BOOT_COMPLETED">获取系统完全启动广播</string>
    <string name="RECEIVE_MMS">监控并处理收到的彩信</string>
    <string name="RECEIVE_WAP_PUSH">处理收到的WAP PUSH消息</string>
    <string name="RECORD_AUDIO">录音</string>
    <string name="REORDER_TASKS">改变任务的Z-order,屏幕堆叠顺序</string>
    <string name="RESTART_PACKAGES">RESTART_PACKAGES [This Feature is Deprecated]</string>
    <!-- S -->
    <string name="SEND_SMS">发送短信</string>
    <string name="SET_ACTIVITY_WATHCER">在全局系统中监控activities是如何被启动的</string>
    <string name="SET_ALWAYS_FINISH">无论activies是否刚刚结束,都将应用程序置于后台运行。</string>
    <string name="SET_ANIMATION_SCALE">修改全局动画缩放比例</string>
    <string name="SET_DEBUG_APP">配置调试应用</string>
    <string name="SET_ORIENTATION">低级别设置屏幕方向</string>
    <string name="SET_PROCESS_LIMIT">设置应用程序最大可用进程数</string>
    <string name="SET_TIME">设置系统时间</string>
    <string name="SET_TIME_ZONE">设置系统时区</string>
    <string name="SET_WALLPAPER">设置壁纸</string>
    <string name="SET_WALLPAPER_HINTS">设置桌面提示</string>
    <string name="SIGNAL_PERSISTENT_PROCESSES">请求发送信号给所有持续进程</string>
    <string name="STATUS_BAR">打开、关闭、禁用状态栏和状态栏图标</string>
    <string name="SUBSCRIBED_FEEDS_READ">读取订阅RSS feeds的ContentProvider</string>
    <string name="SUBSRIBED_FEEDS_WRITE">修改订阅RSS feeds的ContentProvider</string>
    <string name="SYSYTEM_ALERT_WINDOW">打开TYPE_SYSTEM_ALERT类型的系统警告(提示)窗口,并置于顶层显示</string>
    <!-- U -->
    <string name="UPDATE_DEVICE_STATS">更新设备统计信息</string>
    <string name="USE_CREDENTIALS">向AccountManager申请授权标记</string>
    <string name="VIBRATE">控制振动器</string>
    <string name="WAKE_LOCK">避免处理器进入休眠,或屏幕变暗</string>
    <string name="WRITE_APN_SETTINGS">设置APN(Acess Point Name)即“接入点名称”,目前分为两大类:
        CMWAP(通过GPRS访问WAP业务)、CMNET(除了WAP以外的服务目前都是CMNET,比如连接因特网等</string>
    <string name="WRITE_CALENDAR">修改用户日历数据</string>
    <string name="WRITE_CONTACTS">修改联系人数据</string>
    <string name="WRITE_EXTERNAL_STORAGE">存储数据到外部存储设备</string>
    <string name="WRITE_GSERVICES">修改Google地图服务</string>
    <string name="WRITE_HISTORY_BOOKMARKS">修改用户浏览器历史记录和书签</string>
    <string name="WRITE_OWNER_DATA">修改设备所有者数据</string>
    <string name="WRITE_SECURE_SETTINGS">修改系统安全设置</string>
    <string name="WRITE_SETTINGS">修改系统设置</string>
    <string name="WRITE_SMS">编写短信</string>
    <string name="WRITE_SYNC_SETTINGS">修改同步设置</string>
    <string name="WAP_PUSH">发送收到WAP Push广播</string>

    <string name="DOWNLOAD_WITHOUT_NOTIFICATION">不告知用户进行下载</string>
    <string name="READ_EXTERNAL_STORAGE">读取外部存储设备</string>
    <string name="NFC">使用NFC</string>

    <!--Launcher-->
    <string name="LAUNCHER_INSTALL_SHORTCUT">创建桌面快捷方式</string>
    <string name="LAUNCHER_UNINSTALL_SHORTCUT">删除桌面快捷方式</string>
    <string name="LAUNCHER_READ_SETTINGS">读取Launcher设置</string>
    <string name="LAUNCHER_WRITE_SETTINGS">修改Launcher设置</string>

</resources>

转载请注明出处:周木水的CSDN博客 http://blog.csdn.net/zhoumushui

我的GitHub:周木水的GitHub https://github.com/zhoumushui

时间: 2024-10-22 11:42:47

Android获取安装应用所需权限的相关文章

Android获取安装应用所需权限(二)使用PermissionInfo

上次的获取权限信息的Demo略显繁琐,优化了一下,使用系统接口PermissionInfo获取常见的权限描述,如果是对系统不可知的权限,我们在自定义.另外自定义的权限信息函数也从if else语句换成了swithc case语句,虽然还是一大堆,但是看起来结构更清晰一些: package com.zms.getpermission; import android.app.ListActivity; import android.content.Intent; import android.con

Android获取设备隐私 忽略6.0权限管理

1.前言 (1).由于MIUI等部分国产定制系统也有权限管理,没有相关api,故无法判断用户是否允许获取联系人等隐私.在Android 6.0之后,新增权限管理可以通过官方api判断用户的运行状态: (2).我们指定targetSdkVersion为23或者之后我们还需要在运行时请求这些所需的权限.这很重要,因为已经出现了很多开发者把targetSdkVersion飙到了最新,然后发现自己的app疯狂的崩溃,这是由于他们没有实现执行运行时权限请求的代码.当你已经把一个targeting API

查看Android应用所需权限(uses-permission)

http://www.tuicool.com/articles/zq2meq MainActivity如下: package cc.testusespermission; import android.app.Activity; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PermissionGroupInfo; import

Android 获取android安装apk框的安装状态(如点击取消、返回)

最近鼓捣android,碰到个问题,因为没有root权限,需要调用Intent安装apk,但需要获取用户是否安装了(如,用户点击了返回或取消),查了很多文章,最后可以解决,但有瑕疵,解决方法如下: public static void installPackage(Context context, File file, int requestCode) { // 安装之前先记录预安装APK文件的名字,以用于返回结果时根据requestCode获取安装的apk packageName MainAc

【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)

为了实现一个功能,需要搜集手机信息,自己先在网上找了相关信息进行了汇总,主要是汇集手机的信息,一般想要的信息在手机设置->关于手机->状态消息里面包含了手机的各种信息,下面的代码中也主要显示了那些信息,但是源码的方法我还没有看,先把总结的贴出来.先上图(太多就截取几个).  上代码啦,太多了,就写主要代码了. // 获取Android手机中SD卡存储信息 获取剩余空间 public void getSDCardInfo() { // 在manifest.xml文件中要添加 /* * <u

Android_设备隐私获取,忽略6.0权限管理

1.前言 (1).由于MIUI等部分国产定制系统也有权限管理,没有相关api,故无法判断用户是否允许获取联系人等隐私.在Android 6.0之后,新增权限管理可以通过官方api判断用户的运行状态: (2).我们指定targetSdkVersion为23或者之后我们还需要在运行时请求这些所需的权限.这很重要,因为已经出现了很多开发者把targetSdkVersion飙到了最新,然后发现自己的app疯狂的崩溃,这是由于他们没有实现执行运行时权限请求的代码.当你已经把一个targeting API

Android_封装版设备隐私获取,忽略6.0权限管理

本博文为子墨原创,转载请注明出处! http://blog.csdn.net/zimo2013/article/details/50478201 1.前言 (1).由于MIUI等部分国产定制系统也有权限管理,没有相关api,故无法判断用户是否允许获取联系人等隐私.在Android 6.0之后,新增权限管理可以通过官方api判断用户的运行状态: (2).我们指定targetSdkVersion为23或者之后我们还需要在运行时请求这些所需的权限.这很重要,因为已经出现了很多开发者把targetSdk

Android静默安装及开机自启的简单实现

写在前面 [apk静默安装]是android应用的一个重要功能,一般用在app自动更新等方面.静默安装在android里面是指不需要界面或用户参与的app安装动作,且需要系统已获root权限.安装完成后一般通过接收广播的方式启动App服务. [app自启动]是常用功能,一般通过接收系统启动广播实现. 正文 1.被执行安装 app: a. 自定义权限 <permission android:name="app.permission.install" android:protecti

Ubuntu下 Android NDK安装

method 1. 1.google上直接下载NDK源码解压即可,目前版本为 android-ndk-r9d 配置$NDK_HOME 和 $PATH export NDK_HOME=/XXX/android-ndk-r9dexport PATH=$NDK_HOME:$PATH 2.提取toolchain 参考:docs/STANDALONE-TOOLCHAIN.html a.查看目标 指令集 arm or x86 or mipsb.配置gcc编译时所用头文件和根文件的目录 $SYSROOT SY