メインコンテンツへスキップ
バージョン: v8

@capacitor/device

Device APIは、モデルやOSバージョンなどのデバイスに関する内部情報と、一意のIDなどのユーザー情報を公開します。

インストール

npm install @capacitor/device
npx cap sync

Apple プライバシーマニフェストの要件

Appleは、ユーザーのプライバシーを強化するために、アプリ開発者がAPIの使用理由を指定することを義務付けています。2024年5月1日までに、App Store Connectにアプリを提出する際にこれらの理由を含める必要があります。

アプリでこの特定のプラグインを使用する場合は、/ios/AppPrivacyInfo.xcprivacyファイルを作成するか、VS Code拡張機能を使用して生成し、使用理由を指定する必要があります。

これを行う方法の詳細については、Capacitor ドキュメントを参照してください。

このプラグインの場合、必要な辞書のキーはNSPrivacyAccessedAPICategoryDiskSpaceであり、推奨される理由は85F4.1です。

PrivacyInfo.xcprivacy の例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyAccessedAPITypes</key>
<array>

<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryDiskSpace</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>85F4.1</string>
</array>
</dict>
</array>
</dict>
</plist>

プラグイン使用例

import { Device } from '@capacitor/device';

const logDeviceInfo = async () => {
const info = await Device.getInfo();

console.log(info);
};

const logBatteryInfo = async () => {
const info = await Device.getBatteryInfo();

console.log(info);
};

API

getId()

getId() => Promise<DeviceId>

デバイスの一意の識別子を返します。

戻り値: Promise<DeviceId>

以降 1.0.0


getInfo()

getInfo() => Promise<DeviceInfo>

基になるデバイス/OS/プラットフォームに関する情報を返します。

戻り値: Promise<DeviceInfo>

以降 1.0.0


getBatteryInfo()

getBatteryInfo() => Promise<BatteryInfo>

バッテリーに関する情報を返します。

戻り値: Promise<BatteryInfo>

以降 1.0.0


getLanguageCode()

getLanguageCode() => Promise<GetLanguageCodeResult>

デバイスの現在の言語ロケールコードを取得します。

戻り値: Promise<GetLanguageCodeResult>

以降 1.0.0


getLanguageTag()

getLanguageTag() => Promise<LanguageTag>

デバイスの現在の言語ロケールタグを取得します。

戻り値: Promise<LanguageTag>

以降 4.0.0


インターフェース

DeviceId

プロパティ説明以降
identifier文字列アプリで使用可能なデバイスの識別子。この識別子は、アプリごとのインストールIDのみを許可する最新のモバイルプラットフォームで変更される可能性があります。iOSでは、識別子はアプリのベンダーに対してデバイスを一意に識別するUUIDです(詳細はこちら)。Android 8以降では、**識別子は64ビットの数値(16進数の文字列で表現)**であり、アプリの署名キー、ユーザー、デバイスの組み合わせごとに一意です(詳細はこちら)。Webでは、ランダムな識別子が生成され、localStorageに保存されて後続の呼び出しに使用されます。localStorageを使用できない場合は、毎回新しいランダムな識別子が生成されます。1.0.0

DeviceInfo

プロパティ説明以降
name文字列デバイスの名前。例:「John's iPhone」。これはiOSとAndroid 7.1以降でのみサポートされています。iOS 16以降では、適切なエンタイトルメントがないため、一般的なデバイス名が返されます。1.0.0
model文字列デバイスモデル。例:「iPhone13,4」。1.0.0
platform'ios' | 'android' | 'web'デバイスプラットフォーム(小文字)。1.0.0
operatingSystemOperatingSystemデバイスのオペレーティングシステム。1.0.0
osVersion文字列デバイスOSのバージョン。1.0.0
iOSVersion数値iOSバージョン番号。iOSでのみ使用可能です。複数のパートからなるバージョン番号は、2桁で埋められた整数に圧縮されます。例:「16.3.1」-> 1603015.0.0
androidSDKVersion数値Android SDKバージョン番号。Androidでのみ使用可能です。5.0.0
manufacturer文字列デバイスの製造元。1.0.0
isVirtualブール値アプリがシミュレーター/エミュレーターで実行されているかどうか。1.0.0
memUsed数値現在のアプリで使用されているメモリ量の概算(バイト単位)。使用されているMB数を取得するには、1048576で除算します。1.0.0
diskFree数値OSの通常のデータ保存パスで使用可能な空きディスク容量(バイト単位)。Androidでは、「system」パーティション(コアAndroid OSを保持)の空きディスク容量を返します。iOSではこの値は正確ではありません。1.0.0
diskTotal数値OSの通常のデータ保存パスの合計サイズ(バイト単位)。Androidでは、「system」パーティション(コアAndroid OSを保持)のディスク容量を返します。1.0.0
realDiskFree数値通常のデータ保存パスで使用可能な空きディスク容量(バイト単位)。1.1.0
realDiskTotal数値通常のデータ保存パスの合計サイズ(バイト単位)。1.1.0
webViewVersion文字列Webビューブラウザのバージョン1.0.0

BatteryInfo

プロパティ説明以降
batteryLevel数値バッテリーの充電量を示すパーセンテージ(0〜1)。1.0.0
isChargingブール値デバイスが充電中かどうか。1.0.0

GetLanguageCodeResult

プロパティ説明以降
value文字列2文字の言語コード。1.0.0

LanguageTag

プロパティ説明以降
value文字列適切なIETF BCP 47言語タグを返します。4.0.0

型エイリアス

OperatingSystem

'ios' | 'android' | 'windows' | 'mac' | 'unknown'