最終更新:
moonlight_aska 2012年09月08日(土) 10:47:46履歴
使いたいハードウェアまたはハードウェアに依存する機能を端末がサポートしているかを調べるには, PackageManagerクラスを使用する.
注) Android SDKのバージョンにより, サポートしている定数が異なる.


- HardwareCheck.java
- PackageManager.FEATURE_XXXXで, チェックするハードウェアまたはハードウェアに依存する機能を選択する.
- getPackageManagerメソッドで, PackageManagerのインスタンスを取得する.
- 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 |
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

コメントをかく