Android 引入了10个SDK,怎么代码分别获取SDK的包名
时间: 2024-05-14 11:15:41 浏览: 17
获取Android SDK的包名可以通过以下代码实现:
```
int sdkVersion = android.os.Build.VERSION.SDK_INT;
String[] sdkList = android.os.Build.VERSION.SDK_CODENAMES;
for (int i = 0; i < sdkVersion; i++) {
Log.i("SDK " + sdkList[i], "Package name: " + getPackageName("android" + sdkList[i]));
}
private String getPackageName(String sdkName) {
try {
Class<?> cls = Class.forName("com.android.internal.os.ZygoteInit");
Method method = cls.getDeclaredMethod("getSystemContext");
Context context = (Context) method.invoke(null);
PackageManager pm = context.getPackageManager();
return pm.getPackageInfo(sdkName, 0).packageName;
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
```
以上代码可以获取当前设备的Android SDK版本(sdkVersion)和SDK代号(sdkList),然后通过PackageManager来获取每个SDK的包名,最后通过Log.i输出结果即可。