উত্তর:
CODENAME
: বর্তমান বিকাশের কোডনাম, বা স্ট্রিং "REL" যদি এটি একটি রিলিজ বিল্ড হয়।INCREMENTAL
: অন্তর্নিহিত উত্স নিয়ন্ত্রণ ব্যবহার করে অভ্যন্তরীণ মানটি এই বিল্ডটিকে উপস্থাপন করতে।RELEASE
: ব্যবহারকারী-দৃশ্যমান সংস্করণ স্ট্রিং।
এটি কীভাবে ব্যবহার করবেন তা উদাহরণ:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
// only for gingerbread and newer versions
}
বিল্ড. ভার্সন এই ডেটাতে যাওয়ার জায়গা। কীভাবে এটি ফর্ম্যাট করা যায় তার জন্য এখানে একটি কোড স্নিপেট।
public String getAndroidVersion() {
String release = Build.VERSION.RELEASE;
int sdkVersion = Build.VERSION.SDK_INT;
return "Android SDK: " + sdkVersion + " (" + release +")";
}
এই "অ্যান্ড্রয়েড এসডিকে: 19 (4.4.4)" দেখে মনে হচ্ছে
Build.VERSION.RELEASE;
এটি আপনাকে আপনার সংস্করণের আসল সংখ্যা দেবে; ওরফে 2.3.3 বা 2.2। বিল্ড.ও ভার্সন.এসডি কে.এন.টি. ব্যবহার করে সমস্যাটি হ'ল যদি আপনার কাছে কোনও রুটযুক্ত ফোন বা কাস্টম রম থাকে তবে আপনার কোনও মানক OS নেই (ওরফে আমার অ্যান্ড্রয়েড ২.৩.৫ চলছে) এবং বিল্ড.ভি.এস.আর.এস.এন.ডি.পি.টি ব্যবহার করার সময় তা বাতিল হয়ে যাবে will সুতরাং বিল্ড। ভার্সন.রিলএইএস যাই হোক না কেন কাজ করবে!
ডিভাইস সংস্করণ যা মার্শমেলোর চেয়ে বড় বা সমান, তা পরীক্ষা করার জন্য, এই কোডটি ব্যবহার করুন।
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M){
}
অন্যকে সেকেন্ড করার জন্য কেবল ভার্সন_কোডেসের মতো পরিবর্তন করুন
,
কেটকাটের জন্য কে, নওগাতের জন্য ললিপপ এন এর জন্য এবং আরও অনেক কিছু ...
আপনি খুঁজছেন অ্যান্ড্রয়েড সংস্করণ জানতে পারেন Build.VERSION
।
ডকুমেন্টেশন আপনাকে Build.VERSION.SDK_INT
মানগুলির মধ্যে পরীক্ষা করার পরামর্শ দেয় Build.VERSION_CODES
।
এটি ঠিক আছে যতক্ষণ না আপনি বুঝতে পেরেছেন যে Build.VERSION.SDK_INT
কেবলমাত্র এপিআই লেভেল 4 এ প্রবর্তিত হয়েছিল, যা অ্যান্ড্রয়েড 1.6 (ডোনাট) বলে। সুতরাং এটি আপনাকে প্রভাবিত করবে না, তবে আপনি যদি নিজের অ্যাপ্লিকেশনটি অ্যান্ড্রয়েড 1.5 এ বা তার আগে চালাতে চান তবে তার পরিবর্তে আপনাকে হতাশাকে ব্যবহার করতে Build.VERSION.SDK
হবে।
আমি উত্তরগুলিতে মন্তব্য করতে পারছি না, তবে কৌশিকের উত্তরে একটি বিশাল ভুল রয়েছে: এসডিকেএনপিটি সিস্টেম সংস্করণ হিসাবে একরকম নয় তবে আসলে এপিআই স্তরকে বোঝায়।
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){
//this code will be executed on devices running ICS or later
}
মান Build.VERSION_CODES.ICE_CREAM_SANDWICH
14 এর সমান 14 সুতরাং আপনি যদি 4.0 লিখেন তবে আপনার কোড ডোনট থেকে শুরু হওয়া সমস্ত ডিভাইসে কার্যকর করা হবে, কারণ 4 ডোনোটের এপিআই স্তর ( Build.VERSION_CODES.DONUT
সমান 4)।
if(Build.VERSION.SDK_INT >= 4.0){
//this code will be executed on devices running on DONUT (NOT ICS) or later
}
এই উদাহরণটি 'ম্যাজিক নম্বর' ব্যবহার করা খারাপ অভ্যাসের কারণ reason
if(Build.VERSION.SDK_INT >= 15){
উদাহরণস্বরূপ, কোনও বৈশিষ্ট্য কেবল এপিআই 21-র জন্য কাজ করে যা নীচে আমরা এপিআই 21-তে বাগগুলি স্থির করি
if(Build.VERSION.SDK_INT >= 21) {
//only api 21 above
}else{
//only api 21 down
}
সচেতন থেকো বিল্ড.ভর্জিশন.এসডি কে.এন.পি নির্ভরযোগ্য নয়, এটি @ ফ্যালকান ১o65o দ্বারা উল্লেখ করা হয়েছে এবং সম্প্রতি আমি এটিতেও এসেছি।
সুতরাং স্ট্রিং ডেটা পেতে (উপর ভিত্তি করে) বর্তমানে ইনস্টল হওয়া অ্যান্ড্রয়েডের অ্যান্ড্রয়েড সংস্করণ তালিকার ) পেতে, আমি এই জাতীয় কোড তৈরি করেছি:
জাভা
//Current Android version data
public static String currentVersion(){
double release=Double.parseDouble(Build.VERSION.RELEASE.replaceAll("(\\d+[.]\\d+)(.*)","$1"));
String codeName="Unsupported";//below Jelly bean OR above Oreo
if(release>=4.1 && release<4.4)codeName="Jelly Bean";
else if(release<5)codeName="Kit Kat";
else if(release<6)codeName="Lollipop";
else if(release<7)codeName="Marshmallow";
else if(release<8)codeName="Nougat";
else if(release<9)codeName="Oreo";
return codeName+" v"+release+", API Level: "+Build.VERSION.SDK_INT;
}
Kotlin
fun currentVersion(): String {
val release = java.lang.Double.parseDouble(java.lang.String(Build.VERSION.RELEASE).replaceAll("(\\d+[.]\\d+)(.*)", "$1"))
var codeName = "Unsupported"//below Jelly bean OR above Oreo
if (release >= 4.1 && release < 4.4) codeName = "Jelly Bean"
else if (release < 5) codeName = "Kit Kat"
else if (release < 6) codeName = "Lollipop"
else if (release < 7) codeName = "Marshmallow"
else if (release < 8) codeName = "Nougat"
else if (release < 9) codeName = "Oreo"
return codeName + " v" + release + ", API Level: " + Build.VERSION.SDK_INT
}
এটি উত্পাদিত একটি আউটপুট উদাহরণ:
মার্শম্যালো ভি 6.0, এপিআই স্তর: 23
if (Build.VERSION.SDK_INT >= ApiHelper.VERSION_CODES.HONEYCOMB_MR2) {
//do anything you like.
}
এই ক্লাস ব্যবহার করুন
import android.os.Build;
/**
* Created by MOMANI on 2016/04/14.
*/
public class AndroidVersionUtil {
public static int getApiVersion() {
return android.os.Build.VERSION.SDK_INT;
}
public static boolean isApiVersionGraterOrEqual(int thisVersion) {
return android.os.Build.VERSION.SDK_INT >= thisVersion;
}
}
এই পদ্ধতিটি ব্যবহার করুন:
public static String getAndroidVersion() {
String versionName = "";
try {
versionName = String.valueOf(Build.VERSION.RELEASE);
} catch (Exception e) {
e.printStackTrace();
}
return versionName;
}
bash
আপনার অ্যান্ড্রয়েড ডিভাইসে আপনার দেওয়া , আপনি এই ব্যাশ ফাংশনটি ব্যবহার করতে পারেন:
function androidCodeName {
androidRelease=$(getprop ro.build.version.release)
androidCodeName=$(getprop ro.build.version.codename)
# Time "androidRelease" x10 to test it as an integer
case $androidRelease in
[0-9].[0-9]|[0-9].[0-9].|[0-9].[0-9].[0-9]) androidRelease=$(echo $androidRelease | cut -d. -f1-2 | tr -d .);;
[0-9].) androidRelease=$(echo $androidRelease | sed 's/\./0/');;
[0-9]) androidRelease+="0";;
esac
[ -n "$androidRelease" ] && [ $androidCodeName = REL ] && {
# Do not use "androidCodeName" when it equals to "REL" but infer it from "androidRelease"
androidCodeName=""
case $androidRelease in
10) androidCodeName+=NoCodename;;
11) androidCodeName+="Petit Four";;
15) androidCodeName+=Cupcake;;
20|21) androidCodeName+=Eclair;;
22) androidCodeName+=FroYo;;
23) androidCodeName+=Gingerbread;;
30|31|32) androidCodeName+=Honeycomb;;
40) androidCodeName+="Ice Cream Sandwich";;
41|42|43) androidCodeName+="Jelly Bean";;
44) androidCodeName+=KitKat;;
50|51) androidCodeName+=Lollipop;;
60) androidCodeName+=Marshmallow;;
70|71) androidCodeName+=Nougat;;
80|81) androidCodeName+=Oreo;;
90) androidCodeName+=Pie;;
100) androidCodeName+=ToBeReleased;;
*) androidCodeName=unknown;;
esac
}
echo $androidCodeName
}