đây bạn sẽ tìm thấy văn bản rất hay về chủ đề này:
http://android-developers.blogspot.com/2010/07/how-to-have-your-cupcake-and-eat-it-too.html
bạn về cơ bản nên sử dụng mã như dưới đây:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
Log.i(LOG_TAG, "At least ICS version");
}
else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
Log.i(LOG_TAG, "At least HoneyComb version");
}
else {
Log.i(LOG_TAG, "legacy");
}
giá trị const như ICE_CREAM_SANDWICH được tĩnh đưa vào lớp học java, vì vậy miễn là họ có sẵn trong biên soạn, họ sẽ có những phiên bản về trước android sdk-s trên điện thoại của người dùng. Những gì bạn không muốn làm là gọi các phương thức không có sẵn trên các sdk-s trước đó, điều này sẽ kết thúc với các ngoại lệ VFY.
nhưng điều này có thể tẻ nhạt để viết mã như thế, đó là lý do tại sao hết sức mình để tạo ra thực hiện riêng cho từng phiên bản Android và truy cập nó nghĩ giao diện cơ sở: android.os
interface ImplBase {
void myFunc();
};
class ICSImp implements ImplBase {
public void myFunc(){}
}
class HoneyCombImp implements ImplBase {
public void myFunc(){}
}
class LegaceImp implements ImplBase {
public void myFunc(){}
}
Đó là bây giờ bị phản, tôi đã sử dụng .Build.VERSION.SDK_INT thay vào đó, nhưng cảm ơn bạn rất nhiều –