Я должен зарегистрироваться в коде, что версия выпуска Android выполняет в настоящее время на целевом устройстве. Можно ли предоставить пример кода?
Думаю, это дубликат моего собственного вопроса: ndk-версия во время выполнения . Краткий ответ: для нативного приложения нелегко сделать это (однако вы можете запустить приложение Java и связаться с ним, чтобы получить версию).
можете ли вы выполнить getprop ro.build.version.release
shell-команду на вашем устройстве ?
Это работает
также импортируйте следующее:
import com.android.phonetests.TEST_INTERFACE;
import android.os.Build;
import android.app.ActivityThread;
import android.content.pm.ApplicationInfo;
import android.content.pm.IPackageManager;
private int GetSDKVersion()
{
int version = 0;
IPackageManager pm = ActivityThread.getPackageManager();
try
{
//returns a ref to my application according to its application name
ApplicationInfo applicationInfo = pm.getApplicationInfo("com.android.phonetests", 0);
if (applicationInfo != null)
{
version = applicationInfo.targetSdkVersion; ////this makes the same -> version = Build.VERSION.SDK_INT
Log.i(LOG_TAG,"[DBG] version: " + version);
//2 is 5
//2.01 6 (Donut - 2.01)
//2.2 7 (Eclair - 2.2) currently it is Eclair_MR1 (Major Release)
switch (version)
{
case Build.VERSION_CODES.ECLAIR_MR1:
Log.i(LOG_TAG,"[DBG] version: ECLAIR");//2.2 7 (Eclair - 2.2) currently it is Eclair_MR1 (Major Release)
break;
case Build.VERSION_CODES.DONUT:
Log.i(LOG_TAG,"[DBG] version: DONUT");//2.01 6 (Donut - 2.01)
break;
}
}
}
catch (android.os.RemoteException e){}
return version;
}