Apakah ada cara untuk mendapatkan versi API yang sedang dijalankan ponsel?
android
android-api-levels
Parth Mehta
sumber
sumber
Jawaban:
Seperti yang dijelaskan dalam dokumentasi Android, level SDK (integer) yang dijalankan ponsel tersedia di:
android.os.Build.VERSION.SDK_INT
Kelas yang terkait dengan int ini ada di
android.os.Build.VERSION_CODES
kelas.Contoh kode:
Sunting : SDK_INT ini tersedia sejak Donut (android 1.6 / API4) jadi pastikan aplikasi Anda tidak kompatibel dengan Cupcake (android 1.5 / API3) saat Anda menggunakannya atau aplikasi Anda akan macet (terima kasih kepada Programmer Bruce untuk ketepatannya) .
Dokumentasi android yang sesuai ada di sini dan di sini
sumber
minSdkVersion
ke4
(Android 1.6) dan lanjutkan.Sangat mudah:
Keluaran:
sumber
Itu akan memberi Anda angka aktual dari versi Anda; alias 2.3.3 atau 2.2. Masalah dengan menggunakan Build.VERSION.SDK_INT adalah jika Anda memiliki ponsel yang di-rooting atau custom rom, Anda bisa memiliki OS yang tidak standar (alias android saya menjalankan 2.3.5) dan itu akan menghasilkan nol saat menggunakan Build.VERSION.SDK_INT jadi Build.VERSION.RELEASE akan bekerja tidak masalah menggunakan versi Android standar atau tidak!
Untuk menggunakannya, Anda bisa melakukan ini;
sumber
int android.os.Build.VERSION.SDK_INT
danpublic static final int SDK_INT
danAdded in API level 4
bagaimana int (bukan Integer) kembaliNULL
?NULL
adalah keadaan untuk objek sehingga Build atau VERSION-nya bisa secaranull
teoritis tetapi dalam kasus seperti itu tidak hanyaSDK_INT
tetapiRELEASE
juga akan menyebabkan NPE. SDK_INT mungkin dapat menyebabkan "Tidak ada pengecualian metode seperti itu" atau sesuatu seperti itu tetapi tidak null atau NPE. Jika hanya custom ROM yang merusak dokumen dan metode yang dinyatakan sebagaipublic static final Integer SDK_INT
. Saya hanya mencoba menentukan sifat masalah untuk membuat solusi.null
tidak masuk akal.Dengan mempertimbangkan semua kata, berikut adalah kode yang saya gunakan untuk mendeteksi apakah perangkat memiliki Froyo atau OS Android yang lebih baru (2.2+):
Jelas, Anda dapat memodifikasi bahwa jika kondisi mempertimbangkan versi 1.0 & 1.5 Android jika Anda memerlukan pemeriksa generik. Anda mungkin akan berakhir dengan sesuatu seperti ini:
Beri tahu saya jika kode tidak berfungsi untuk Anda.
sumber
coba ini:
sumber
android.os.Build.VERSION.SDK akan memberi Anda nilai Level API. Anda dapat dengan mudah menemukan pemetaan dari tingkat api ke versi android di dokumentasi android. Saya percaya, 8 untuk 2.2, 7 untuk 2.1, dan seterusnya.
sumber
Oke. Ini menggunakan
getApplicationInfo()
metodeContext
kelas.sumber
SDK.INT didukung untuk Android 1.6 dan lebih tinggi
SDK didukung untuk semua versi
Jadi saya lakukan:
Kredit ke: CommonsWare atas jawaban ini
sumber
Saya lebih suka memiliki versi sebagai nomor handeled lebih mudah daripada saya menulis ini:
sumber
Ini Coding Selamat Bekerja
Catatan Harap pastikan paket impor Anda sudah benar (impor paket nama paket aplikasi Anda jika tidak berfungsi dengan benar)
sumber
Saya memperbaiki kode yang saya gunakan
sumber