Androidシステム情報の表示
5778 ワード
1.android.os.SystemPropertiesを使用する方法
Androidシステムは主にSystemPropertiesというクラスを通じて、直接ローカルに呼び出してシステム属性の作成、取得、修正を実現する.
Systempropertiesクラスはandroid.osの下にあり、パスは:
Systempropertiesクラスはandroid.osの下にありますが、このクラスは非表示で、上位プログラム開発では直接使用できません.
Android.os.SystemPropertiesはSDKのライブラリにはありません.
ファイルは現在のプロジェクトの追加ライブラリパスに追加され、ソースプログラムでImportできます.
ただしJava Build Path->LibrariesにExternal JARsを追加する方法は直接追加できません
Layoutlib.jarファイルをプロジェクトルートディレクトリにコピーし、Build Pathを右クリックします.
システムのプロパティを取得するには、次の手順に従います.
ここでkey値はandroidソースディレクトリにあります
ファイル
特別属性:
属性名が「ro.」で始まると、この属性は読み取り専用属性とみなされます.設定すると、属性値は変更できません.
属性名が「persist.」で始まると、この属性を設定すると、その値も/data/propertyに書き込まれます.
属性名が「net.」で始まると、この属性を設定すると、最後に変更した属性名に「net.change」属性が自動的に設定されます.
プロパティを設定するときは、次の点に注意してください.
key値のネーミング接頭辞は
に定義された接頭辞は、システム属性設定を行うプログラムにもsystemまたはroot権限が必要です.
androidプログラムの権限をsystem権限に上げるにはどうすればいいですか?方法は次のとおりです.
1、AndroidManifest.xmlでmanifestに加入する
2、Android.mkで、�
変更
2.TelephonyManager携帯電話情報の取得
Androidシステムは主にSystemPropertiesというクラスを通じて、直接ローカルに呼び出してシステム属性の作成、取得、修正を実現する.
Systempropertiesクラスはandroid.osの下にあり、パスは:
/frameworks/base/core/java/android/os/SystemProperties.java
Systempropertiesクラスはandroid.osの下にありますが、このクラスは非表示で、上位プログラム開発では直接使用できません.
Android.os.SystemPropertiesはSDKのライブラリにはありません.
Android SDK\platforms\android-xx\data\layoutlib.jar
ファイルは現在のプロジェクトの追加ライブラリパスに追加され、ソースプログラムでImportできます.
ただしJava Build Path->LibrariesにExternal JARsを追加する方法は直接追加できません
Layoutlib.jarファイルをプロジェクトルートディレクトリにコピーし、Build Pathを右クリックします.
システムのプロパティを取得するには、次の手順に従います.
android.os.SystemProperties.get("ro.build.version.sdk")
ここでkey値はandroidソースディレクトリにあります
android\platform\out\target\product\mt8658sdk\system\build.prop
ファイル
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=IMM76L
ro.build.version.incremental=eng.****.20140829.161823
ro.build.version.sdk=15
ro.build.version.codename=REL
ro.build.version.release=4.0.4
ro.build.date=2014 08 29 16:18:59 CST
ro.build.date.utc=1409300339
ro.build.type=eng
ro.build.user=*****
ro.build.host=iptv-int
ro.build.tags=dev-keys
ro.wifi.channels=
# ro.build.product is obsolete; use ro.product.device
# Do not try to parse ro.build.description or .fingerprint
ro.build.characteristics=default
persist.sys.country=US
persist.sys.language=es
ro.product.HWVersion=YMB.A202.A
ro.product.SWVersion=001.006.711
ro.product.SWVersion.Num=001006711
# end build properties
#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.com.android.dateformat=MM-dd-yyyy
ro.config.ringtone=Ring_Synth_04.ogg
ro.config.notification_sound=pixiedust.ogg
ro.config.alarm_alert=Alarm_Classic.ogg
wifi.interface=wlan0
特別属性:
属性名が「ro.」で始まると、この属性は読み取り専用属性とみなされます.設定すると、属性値は変更できません.
属性名が「persist.」で始まると、この属性を設定すると、その値も/data/propertyに書き込まれます.
属性名が「net.」で始まると、この属性を設定すると、最後に変更した属性名に「net.change」属性が自動的に設定されます.
プロパティを設定するときは、次の点に注意してください.
android.os.SystemProperties.set(key, val)
key値のネーミング接頭辞は
android\platform\system\core\init
に定義された接頭辞は、システム属性設定を行うプログラムにもsystemまたはroot権限が必要です.
androidプログラムの権限をsystem権限に上げるにはどうすればいいですか?方法は次のとおりです.
1、AndroidManifest.xmlでmanifestに加入する
android:sharedUserId="android.uid.system"
2、Android.mkで、�
LOCAL_CERTIFICATE := XXX
変更
LOCAL_CERTIFICATE :=platform
2.TelephonyManager携帯電話情報の取得
TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);
/*
* : 1.tm.CALL_STATE_IDLE=0 2.tm.CALL_STATE_RINGING=1
* 3.tm.CALL_STATE_OFFHOOK=2
*/
tm.getCallState();// int
/*
* :
*/
tm.getCellLocation();// CellLocation
/*
* ID: GSM IMEI CDMA MEID. Return null if device ID is not
* available.
*/
tm.getDeviceId();// String
/*
* : :the IMEI/SV(software version) for GSM phones. Return
* null if the software version is not available.
*/
tm.getDeviceSoftwareVersion();// String
/*
* : GSM MSISDN. Return null if it is unavailable.
*/
tm.getLine1Number();// String
/*
* : :List<NeighboringCellInfo>
* :android.Manifest.permission#ACCESS_COARSE_UPDATES
*/
tm.getNeighboringCellInfo();// List<NeighboringCellInfo>
/*
* ISO , 。 : 。 CDMA 。
*/
tm.getNetworkCountryIso();// String
/*
* MCC+MNC(mobile country code + mobile network code) : 。
* CDMA 。
*/
tm.getNetworkOperator();// String
/*
* current registered operator( ) : 。
* CDMA 。
*/
tm.getNetworkOperatorName();// String
/*
* : : NETWORK_TYPE_UNKNOWN 0 NETWORK_TYPE_GPRS GPRS
* 1 NETWORK_TYPE_EDGE EDGE 2 NETWORK_TYPE_UMTS UMTS 3
* NETWORK_TYPE_HSDPA HSDPA 8 NETWORK_TYPE_HSUPA HSUPA 9
* NETWORK_TYPE_HSPA HSPA 10 NETWORK_TYPE_CDMA CDMA ,IS95A IS95B. 4
* NETWORK_TYPE_EVDO_0 EVDO , revision 0. 5 NETWORK_TYPE_EVDO_A EVDO ,
* revision A. 6 NETWORK_TYPE_1xRTT 1xRTT 7
*/
tm.getNetworkType();// int
/*
* : : PHONE_TYPE_NONE PHONE_TYPE_GSM GSM PHONE_TYPE_CDMA
* CDMA
*/
tm.getPhoneType();// int
/*
* Returns the ISO country code equivalent for the SIM provider's
* country code. ISO , SIM 。
*/
tm.getSimCountryIso();// String
/*
* Returns the MCC+MNC (mobile country code + mobile network code) of
* the provider of the SIM. 5 or 6 decimal digits.
* SIM .5 6 . SIM
* SIM_STATE_READY( getSimState() ).
*/
tm.getSimOperator();// String
/*
* : : 、 SIM SIM_STATE_READY( getSimState() ).
*/
tm.getSimOperatorName();// String
/*
* SIM : :READ_PHONE_STATE
*/
tm.getSimSerialNumber();// String
/*
* SIM : SIM_STATE_UNKNOWN 0 SIM_STATE_ABSENT 1
* SIM_STATE_PIN_REQUIRED , PIN 2 SIM_STATE_PUK_REQUIRED
* , PUK 3 SIM_STATE_NETWORK_LOCKED , PIN 4
* SIM_STATE_READY 5
*/
tm.getSimState();// int
/*
* ID: :IMSI( ) for a GSM phone. :READ_PHONE_STATE
*/
tm.getSubscriberId();// String
/*
* , :READ_PHONE_STATE
*/
tm.getVoiceMailAlphaTag();// String
/*
* : :READ_PHONE_STATE
*/
tm.getVoiceMailNumber();// String
/*
* ICC
*/
tm.hasIccCard();// boolean
/*
* : ( GSM )
*/
tm.isNetworkRoaming();