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;}