- HardwareCheck.java
- PackageManager.FEATURE_XXXXで, チェックするハードウェアまたはハードウェアに依存する機能を選択する.
- getPackageManagerメソッドで, PackageManagerのインスタンスを取得する.
- PackageManager#hasSystemFeatureメソッドで, チャックする.
PackageManager#hasSystemFeatureメソッド利用できる定数の一部を示す.
定数 | ハードウェア |
FEATURE_BLUETOOTH | Bluetooth |
FEATURE_CAMERA | リアのカメラ |
FEATURE_CAMERA_AUTOFOCUS | オートフォーカス機能 |
FEATURE_CAMERA_FLASH | カメラのフラッシュ |
FEATURE_CAMERA_FRONT | フロントのカメ |
FEATURE_LIVE_WALLPAPER | ライブ壁紙 |
FEATURE_LOCATION | 位置情報取得機能 |
FEATURE_LOCATION_GPS | GPS |
FEATURE_LOCATION_NETWORK | ネットワーク位置情報取得 |
FEATURE_MICROPHONE | マイク |
FEATURE_NFC | NFC |
FEATURE_SENSOR_ACCELEROMETER | 加速度センサー |
FEATURE_SENSOR_BAROMETER | 圧力センサー |
FEATURE_SENSOR_COMPASS | コンパス |
FEATURE_SENSOR_GYROSCOPE | ジャイロスコープ |
FEATURE_SENSOR_LIGHT | 照度センサー |
FEATURE_SENSOR_PROXIMITY | 近接センサー |
FEATURE_TELEPHONY | 移動体データ通信 |
FEATURE_TELEVISION | TV |
FEATURE_TOUCHSCREEN | タッチスクリーン |
FEATURE_TOUCHSCREEN_MULTITOUCH | マルチタッチ |
FEATURE_USB_ACCESSORY | USBアクセサリー |
FEATURE_USB_HOST | USBホスト |
FEATURE_WIFI | WiFi |
FEATURE_WIFI_DIRECT | WiFi Direct |
注) Android SDKのバージョンにより, サポートしている定数が異なる.
package com.moonlight_aska.android.hardwarecheck;
import android.os.Bundle;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.widget.TextView;
public class HardwareCheck extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView text = (TextView)findViewById(R.id.text);
// チェックするハードウェア
String [] feature = {
PackageManager.FEATURE_BLUETOOTH,
PackageManager.FEATURE_CAMERA,
PackageManager.FEATURE_CAMERA_AUTOFOCUS,
PackageManager.FEATURE_CAMERA_FLASH,
PackageManager.FEATURE_CAMERA_FRONT,
PackageManager.FEATURE_LIVE_WALLPAPER,
PackageManager.FEATURE_LOCATION,
PackageManager.FEATURE_LOCATION_GPS,
PackageManager.FEATURE_LOCATION_NETWORK,
PackageManager.FEATURE_MICROPHONE,
PackageManager.FEATURE_NFC,
PackageManager.FEATURE_SENSOR_ACCELEROMETER,
PackageManager.FEATURE_SENSOR_BAROMETER,
PackageManager.FEATURE_SENSOR_COMPASS,
PackageManager.FEATURE_SENSOR_GYROSCOPE,
PackageManager.FEATURE_SENSOR_LIGHT,
PackageManager.FEATURE_SENSOR_PROXIMITY,
PackageManager.FEATURE_TELEPHONY,
PackageManager.FEATURE_TELEVISION,
PackageManager.FEATURE_TOUCHSCREEN,
PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH,
PackageManager.FEATURE_USB_ACCESSORY,
PackageManager.FEATURE_USB_HOST,
PackageManager.FEATURE_WIFI,
PackageManager.FEATURE_WIFI_DIRECT,
"" };
String [] featureName = {
"Bluetooth", "Camera", "Camera autofocus", "Camera flash",
"Front camera", "Live wallpaper", "Location", "GPS",
"Network location", "Microphone", "NFC", "Accelerometer sensor",
"Barometer sensor", "Compass sensor", "Gyroscope sensor",
"Light sensor", "Proximity sensor", "Telephony", "TV",
"Touch screen", "Multi touch", "USB accessory", "USB host",
"WiFi", "WiFi Direct", "" };
PackageManager pm = getPackageManager();
String results = "";
for (int i=0; feature[i] != ""; i++) {
// 順にハードウェアをチェック
if (pm.hasSystemFeature(feature[i])) {
results += featureName[i] + " supported.\n";
}
else {
results += featureName[i] + " not supported.\n";
}
}
text.setText(results);
}
}
- 動作例
- 端末:SHARP SH-03C / Android 2.2
- 端末:Google Nexus 7 / Android 4.1