4

http://developer.android.com/reference/android/os/Build.htmlから多くのフィールドをチェックしました。

ただし、特定のデバイスが CyanogenMod を使用しているという明確な情報を得ることができません。

これは私が得るものです:

NETWORK_TYPE="0"
SDK_INT="10"
CODENAME="REL"
INCREMENTAL="eng.android.20110308.014205"
RELEASE="2.3.3"
SDK="10"
Build.BOARD=bravo
BOOTLOADER=0.93.0001
BRAND=htc_wwe
CPU_ABI=armeabi-v7a
CPU_ABI2=armeabi
DEVICE=bravo
DISPLAY=GRI40
FINGERPRINT=htc_wwe/htc_bravo/bravo/bravo:2.2/FRF91/226611:user/release-keys
HARDWARE=bravo
HOST=giulio-desktop
ID=FRF91
MANUFACTURER=HTC
MODEL=HTC Desire
PRODUCT=htc_bravo
RADIO=unknown
TAGS=release-keys
TIME=0
TYPE=userdebug
USER=android

NETWORK_TYPE="0"
SDK_INT="10"
CODENAME="REL"
INCREMENTAL="eng.shade.20110307.195429"
RELEASE="2.3.3"
SDK="10"
Build.BOARD=mahimahi
BOOTLOADER=0.35.0017
BRAND=google
CPU_ABI=armeabi-v7a
CPU_ABI2=armeabi
DEVICE=passion
DISPLAY=GRI40
FINGERPRINT=google/passion/passion:2.3.3/GRI40/102588:user/release-keys
HARDWARE=mahimahi
HOST=toxygene
ID=GRI40
MANUFACTURER=HTC
MODEL=Nexus One
PRODUCT=passion
RADIO=unknown
TAGS=test-keys
TIME=0
TYPE=user
USER=shade
4

5 に答える 5

6

PackageManager.hasSystemFeature("com.cyanogenmod.android")より一貫性があります。

于 2012-12-05T11:31:54.217 に答える
3

システム プロパティから読み取る方がはるかに簡単です。

String version = System.getProperty("os.version");
if (version.contains("cyanogenmod")) {
    isCyanogenMode = true;
}

私のデバイスでos.versionは、2.6.37.6-cyanogenmod-01509-g8913be8

または、ビルドを組み立てた人の名前を持つBuild.USER定数を使用することもできます。CyanogenMod の場合、これは多くの場合「shade」です (Steve Kondik 別名 Cyanogen の別のニックネーム)。

特別なプロパティもありますがro.modversion、私が見る限り、プログラムで読み取るにはSystemProperties内部クラスにアクセスする必要があります。

于 2012-03-21T08:45:32.793 に答える
1

私のデバイスSystem.getProperty("os.version")では、のようなもの3.0.64-CM-g9d16c8aです。バージョン番号のチェックがcyanogenmod機能しなくなりました。この投稿に詳細を追加しました。

于 2014-07-31T04:06:43.490 に答える
0

The easiest way which I found is to read file /proc/version, which contain information about kernel version.

Phones with cyanogenmod give something like:

Linux version 2.6.37.2-cyanogenmod-01149-g8cdf03e

reading this file not requires root privileges (runnung uname -r does).

于 2011-04-04T09:53:39.320 に答える
0

カーネルは常にエンド ユーザーによってスワップ アウトされるため、System.getProperty("os.version") を使用するか、/proc/version から読み取ることは、デバイスが cyanogenmod を実行しているかどうかの適切な指標ではありません。言い換えれば、指標としてのみ使用することは良い考えではありません。複数の方法を組み合わせて使用​​する必要があります。@kakopappa が os.version と /proc/version を読んでいる彼の他の投稿で示したように、あなたもチェックする必要があります

android.os.Build.HOST

私の経験から、cyanogenmod が含まれているのは 10 回中 9 回です。HOST 変数は build.prop -> ro.build.host で変更できるので、念のため、他の方法も使用することをお勧めします。

于 2014-12-22T21:03:08.147 に答える