• Android 开发工具方法整理


    1. 获取当前手机系统语言

    Locale.getDefault().getLanguage();  

    2. 获取当前手机系统版本号

    android.os.Build.VERSION.RELEASE;  

    3. 获取手机型号

    android.os.Build.BRAND;

    4. 获取Android系统版本号

    android.os.Build.VERSION.SDK_INT 

    5. 应用程序得到自己的应用程序信息 

    /** 
     * 得到当前应用版本名称的方法 */  
    public static String getVersionName(Context context) throws Exception {  
        // 获取packagemanager的实例  
        PackageManager packageManager = context.getPackageManager();  
        // getPackageName()是你当前类的包名  
        PackageInfo packInfo = packageManager.getPackageInfo(context.getPackageName(), 0);  
        String version = packInfo.versionName;  
        return version;  
    }   

    6. 应用程序获得其他应用程序的版本信息(根据包名)

    /** 
     * 获取指定包名的版本号 
     *  
     * @param context  本应用程序上下文 
     * @param packageName  你想知道版本信息的应用程序的包名 
     * @return 
     * @throws Exception 
     */  
    public static String getVersionName(Context context, String packageName) throws Exception {  
        // 获取packagemanager的实例  
        PackageManager packageManager = context.getPackageManager();  
        PackageInfo packInfo = packageManager.getPackageInfo(packageName, 0);  
        String version = packInfo.versionName;  
        return version;  
    }  

    7. 从SD卡等Path获取某安装包(apk文件)的版本信息 

    /** 
     * 从一个apk文件去获取该文件的版本信息 
     *  
     * @param context  本应用程序上下文 
     * @param archiveFilePath  APK文件的路径。如:/sdcard/download/XX.apk 
     * @return 
     */  
    public static String getVersionNameFromApk(Context context, String archiveFilePath) {  
        PackageManager pm = context.getPackageManager();  
        PackageInfo packInfo = pm.getPackageArchiveInfo(archiveFilePath, PackageManager.GET_ACTIVITIES);  
        String version = packInfo.versionName;  
        return version;  
    }  

    8. 获取相应的权限 (示例为:获取外部存储读写权限+读取音频的权限)

    // 请求读写外部存储 + 读取音频的权限
    int checkWriteExternalPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
    int checkRecordAudioPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO);
    if (checkWriteExternalPermission != PackageManager.PERMISSION_GRANTED || checkRecordAudioPermission != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this, new String[]{
    Manifest.permission.WRITE_EXTERNAL_STORAGE,
    Manifest.permission.READ_EXTERNAL_STORAGE,
    Manifest.permission.RECORD_AUDIO}, 0);
    }

    9. 获取当前系统已用的内存百分比

    /**
     * 计算已使用内存的百分比,并返回。
     *
     * @param context 可传入应用程序上下文。
     * @return 已使用内存的百分比,以字符串形式返回。
     */
    public static String getUsedPercentValue(Context context) {
        String dir = "/proc/meminfo";
        try {
            FileReader fr = new FileReader(dir);
            BufferedReader br = new BufferedReader(fr, 2048);
            String memoryLine = br.readLine();
            String subMemoryLine = memoryLine.substring(memoryLine.indexOf("MemTotal:"));
            br.close();
            long totalMemorySize = Integer.parseInt(subMemoryLine.replaceAll("\D+", ""));
            long availableSize = getAvailableMemory(context) / 1024;
            int percent = (int) ((totalMemorySize - availableSize) / (float) totalMemorySize * 100);
            return percent + "%";
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "";
    }
    
    /**
     * 获取当前可用内存,返回数据以字节为单位。
     *
     * @param context  可传入应用程序上下文。
     * @return 当前可用内存。
     */
    private static long getAvailableMemory(Context context) {
        ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
        getActivityManager(context).getMemoryInfo(mi);
        return mi.availMem;
    }
    
    /**
     * 如果ActivityManager还未创建,则创建一个新的ActivityManager返回。否则返回当前已创建的ActivityManager。
     *
     * @param context
     *            可传入应用程序上下文。
     * @return ActivityManager的实例,用于获取手机可用内存。
     */
    private static ActivityManager getActivityManager(Context context) {
        if (mActivityManager == null) {
            mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        }
        return mActivityManager;
    }

     

  • 相关阅读:
    [转]JIRA 7.2.6与Confluence 6.0.3的安装与配置之MS SQL Server版
    Vue中computed和watch使用场景和方法
    vue插槽 slot 插槽之间的父子传参
    VUE 父子组件的传递 props、$ref 、 $emit、$parent、$children、$root
    div水平居中 垂直居中
    三次握手 四次挥手
    TCP/IP各层网络协议的通俗理解
    学习 cookie session 正向代理和反向代理的区别
    学习vuex心得体会
    登陆界面 跟后台对接口
  • 原文地址:https://www.cnblogs.com/renhui/p/7123373.html
Copyright © 2020-2023  润新知