1.
Locale.getDefault().getLanguage();
2.
android.os.Build.VERSION.RELEASE;
3.
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;
}