Device

Device

device オブジェクトはデバイスのハードウェアとソフトウェアの情報を表します。

プロパティー

変数の範囲

device オブジェクトは window オブジェクトに割当たれるため、暗黙的にグローバルスコープとして扱われます。

// 下記は同じ `device` オブジェクト
var phoneName = window.device.name;
var phoneName = device.name;

パーミッション

Android

app/res/xml/plugins.xml

<plugin name="Device" value="org.apache.cordova.Device" />

app/AndroidManifest.xml

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

Bada

manifest.xml

<Privilege>
    <Name>SYSTEM_SERVICE</Name>
</Privilege>

BlackBerry WebWorks

www/plugins.xml

<plugin name="Device" value="org.apache.cordova.device.Device" />

www/config.xml

<feature id="blackberry.app" required="true" version="1.0.0.0" />
<rim:permissions>
    <rim:permit>read_device_identifying_information</rim:permit>
</rim:permissions>

iOS

パーミッションの設定は必要ありません。

webOS

パーミッションの設定は必要ありません。

Windows Phone

Properties/WPAppManifest.xml

<Capabilities>
    <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
    <Capability Name="ID_CAP_IDENTITY_DEVICE" />
    <Capability Name="ID_CAP_IDENTITY_USER" />
</Capabilities>

参照: Application Manifest for Windows Phone


device.name

デバイスのモデル名を取得します。

var string = device.name;

概要

device.name はデバイスのモデル名を返します。この値はデバイスの製造者によって設定されるため、同じモデルでも異なるバージョンで値が異なる場合があります。

サポートされているプラットフォーム

使用例

// Android:    Nexus One       はコードネームである "Passion" を返します
//             Motorola Droid  は "voles" を返します
// BlackBerry: Torch 9800      は "9800" を返します
// iPhone:     iTunes でセットした名前、 "Joe's iPhone" などを返します
//
var name = device.name;

詳細な使用例

<!DOCTYPE html>
<html>
  <head>
    <title>デバイスプロパティーの使用例</title>

    <script type="text/javascript" charset="utf-8" src="cordova-1.9.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Cordova の読み込み完了まで待機
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Cordova 準備完了
    //
    function onDeviceReady() {
        var element = document.getElementById('deviceProperties');

        element.innerHTML = 'デバイス名: '          + device.name       + '<br />' +
                            'デバイス Cordova: '    + device.cordova    + '<br />' +
                            'デバイスプラットフォーム: ' + device.platform + '<br />' +
                            'デバイス UUID: '       + device.uuid       + '<br />' +
                            'デバイスバージョン: '  + device.version    + '<br />';
    }

    </script>
  </head>
  <body>
    <p id="deviceProperties">デバイスプロパティーを読込中...</p>
  </body>
</html>

Android に関する注意点

iPhoneに関する注意点

Windows Phone 7 に関する注意点

Bada に関する注意点


device.cordova

現在使用している Cordova のバージョン情報を表します。

var string = device.cordova;

概要

device.cordova は現在実行中の Cordova のバージョン情報を取得します。

サポートされているプラットフォーム

使用例

var name = device.cordova;

詳細な使用例

<!DOCTYPE html>
<html>
  <head>
    <title>デバイスプロパティーの使用例</title>

    <script type="text/javascript" charset="utf-8" src="cordova-1.9.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Cordova の読み込み完了まで待機
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Cordova 準備完了
    //
    function onDeviceReady() {
        var element = document.getElementById('deviceProperties');

        element.innerHTML = 'デバイス名: ' + device.name + '<br />' +
                            'デバイス Cordova: ' + device.cordova + '<br />' +
                            'デバイスプラットフォーム: ' + device.platform + '<br />' +
                            'デバイス UUID: ' + device.uuid + '<br />' +
                            'デバイスバージョン: ' + device.version + '<br />';
    }

    </script>
  </head>
  <body>
    <p id="deviceProperties">デバイスプロパティーを読込中...</p>
  </body>
</html>

device.platform

デバイスの OS 名を取得します。

var string = device.platform;

サポートされているプラットフォーム

使用例

// デバイスによって異なります。例:
// - "Android"
// - "BlackBerry"
// - "iPhone"
// - "webOS"
// - "WinCE"
var devicePlatform = device.platform;

詳細な使用例

<!DOCTYPE html>
<html>
  <head>
    <title>デバイスプロパティーの使用例</title>

    <script type="text/javascript" charset="utf-8" src="cordova-1.9.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Cordova の読み込み完了まで待機
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Cordova 準備完了
    //
    function onDeviceReady() {
        var element = document.getElementById('deviceProperties');

        element.innerHTML = 'デバイス名: '          + device.name       + '<br />' +
                            'デバイス Cordova: '    + device.cordova    + '<br />' +
                            'デバイスプラットフォーム: ' + device.platform + '<br />' +
                            'デバイス UUID: '       + device.uuid       + '<br />' +
                            'デバイスバージョン: '  + device.version    + '<br />';
    }

    </script>
  </head>
  <body>
    <p id="deviceProperties">デバイスプロパティーを読込中...</p>
  </body>
</html>

iPhone に関する注意点

iPhone は iPhone をプラットフォームとして返します。 iPad は iPad をプラットフォームとして返します。シミュレータの場合は、 iPhone SimulatoriPad Simulator をそれぞれ返します。 Apple は iPhone の OS の名称を iOS に変更したので、この返り値は厳密には正確でないという点に注意してください。

BlackBerry に関する注意点

OS 名ではなくプラットフォームのバージョンを返す可能性があります。例えば、 Storm2 9550 の場合 '2.13.0.95' を返すことがあります。

Windows Phone 7 に関する注意点

Windows Phone 7 デバイスはプラットフォームとして 'WinCE' を返します。


device.uuid

デバイスの固定 ID (UUID) を取得します。

var string = device.uuid;

概要

UUID の生成方法については、デバイスの製造者やプラットフォームによって決定されます。

サポートされているプラットフォーム

使用例

// Android: ランダムな64ビットの数値を文字列として返します
//          数値はデバイスの初回起動時に生成されます
//
// BlackBerry: デバイスの PIN 番号を文字列として返します
//             この番号は9桁の一意な数値です
//
// iPhone: (UIDevice クラスのドキュメントに記載)
//         ハードウエア ID に基づくハッシュ値を返します
//         デバイスに固有でユーザーアカウントとは
//         リンクされていません
// Windows Phone 7 : デバイスユーザーのハッシュ値を返します
// もしユーザーが定義されていない場合、ガイドが生成され、アプリがアンインストールするまで存続します
//
// webOS: デバイスの NDUID を返します
var deviceID = device.uuid;

詳細な使用例

<!DOCTYPE html>
<html>
  <head>
    <title>デバイスプロパティーの使用例</title>

    <script type="text/javascript" charset="utf-8" src="cordova-1.9.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Cordova の読み込み完了まで待機
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Cordova 準備完了
    //
    function onDeviceReady() {
        var element = document.getElementById('deviceProperties');

        element.innerHTML = 'デバイス名: '          + device.name       + '<br />' +
                            'デバイス Cordova: '    + device.cordova    + '<br />' +
                            'デバイスプラットフォーム: ' + device.platform + '<br />' +
                            'デバイス UUID: '       + device.uuid       + '<br />' +
                            'デバイスバージョン: '  + device.version    + '<br />';
    }

    </script>
  </head>
  <body>
    <p id="deviceProperties">デバイスプロパティーを読込中...</p>
  </body>
</html>

iOS に関する注意点

iOS の UUID はデバイスによって一意ではありませんが、インストールされたアプリごとに一意です。もしアプリを削除し再インストールすると、この値は変化します。また、 iOS のバージョンアップをしたとき、もしくはアプリのバージョンアップをしたときにも変化する可能性があります (iOS 5.1 で現象を確認) 。安定した値ではありません。

Windows Phone 7 に関する注意点

Windows Phone 7 の UUID には IDCAPIDENTITY_DEVICE の許可が必要です。 Microsoft はこのプロパティーを近い将来サポートしなくなります。もし機能が有効でなければ、アプリが永続的な guid を生成し、インストールされている限り保持されます。


device.version

OS のバージョンを取得します。

var string = device.version;

サポートされているプラットフォーム

使用例

// Android:     Froyo の場合は "2.2" を返す
//              Eclair の場合は "2.1", "2.0.1" もしくは "2.0" を返す
//              アップデートが行われると "2.1-update1" のように返す
//
// BlackBerry:  OS 6.0 を搭載した Torch 9800 の場合は "6.0.0.600" を返す
//
// iPhone:      iOS 3.2 は "3.2" を返す
//
// Windows Phone 7: 現在の OS バージョンを返す、例: Mango は7.10.7720を返す
// webOS: webOS 2.2.4 は 2.2.4 を返す
var deviceVersion = device.version;

詳細な使用例

<!DOCTYPE html>
<html>
  <head>
    <title>デバイスプロパティーの使用例</title>

    <script type="text/javascript" charset="utf-8" src="cordova-1.9.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Cordova の読み込み完了まで待機
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // Cordova 準備完了
    //
    function onDeviceReady() {
        var element = document.getElementById('deviceProperties');

        element.innerHTML = 'デバイス名: '          + device.name       + '<br />' +
                            'デバイス Cordova: '    + device.cordova    + '<br />' +
                            'デバイスプラットフォーム: ' + device.platform + '<br />' +
                            'デバイス UUID: '       + device.uuid       + '<br />' +
                            'デバイスバージョン: '  + device.version    + '<br />';
    }

    </script>
  </head>
  <body>
    <p id="deviceProperties">デバイスプロパティーを読込中...</p>
  </body>
</html>