Reputation: 21778
Can I use Android version code constants with older Android runtimes? For instance,
if (android.os.Build.VERSION.SDK_INT >=
android.os.Build.VERSION_CODES.HONEYCOMB) ...
would this run without crash on old devices running Android operating system before HONEYCOMB when this constant has been first defined? Assuming we compile it with recent enough SDK?
Upvotes: 8
Views: 941
Reputation: 10233
Yes, this will work.
The reason for this is that android.os.Build.VERSION_CODES.HONEYCOMB
is an int
. android.os.Build.VERSION_CODES.HONEYCOMB
is just an alias (the int
equals 11
) for 11
, as can be seen in an IDE such as Eclipse:
int android.os.Build.VERSION_CODES.HONEYCOMB = 11 [0xb]
So this will work as it'll just check if the android.os.Build.VERSION.SDK_INT
is greater than or equal to 11.
Upvotes: 6
Reputation: 152887
Yes you can. It works because the int
values are static final
. The compiler will inline them into the bytecode at compile time. No symbol import is required at runtime.
Upvotes: 4