Chromebook 向けアプリ マニフェストの互換性

Chromebook で実行する Android アプリを作成する際は、アプリで使用するデバイスの機能を考慮する必要があります。Chromebook は、他の Android 搭載デバイスで利用可能なハードウェア機能とソフトウェア機能をすべてサポートしているわけではありません。Chromebook でサポートされていない機能を必要とするアプリは Chromebook にインストールできません。

ハードウェア機能と特定のソフトウェア機能に対するアプリの要件をマニフェスト ファイルで宣言する必要があります。このドキュメントでは、Chromebook と互換性のない機能をアプリ マニフェストで宣言する方法について説明します。

互換性のないマニフェスト エントリ

このセクションに記載されているマニフェスト エントリは、Chromebook と互換性がありません。アプリがこれらのエントリを使用する場合は、該当するエントリを削除するか、エントリとともに required="false" 属性値を含めることで、Chromebook にアプリをインストールできるようにすることを検討してください。

ある機能を使用できるとは限らないデバイスで、その機能の使用を宣言する方法の詳細については、 <uses-feature> マニフェスト要素のガイドをご覧ください。アプリ マニフェストの機能と説明を網羅した一覧については、機能のリファレンスをご覧ください。

注意: Android Studio には、マニフェスト ファイルを自動的に検証する組み込みの lint チェックが備えられています。Android Studio で、[File] > [Settings] > [Editor] > [Inspections] > [Android] > [Lint] > [Correctness] > [ChromeOS] を選択します。

ハードウェア機能

サポートされるハードウェア機能は、Chromebook によって異なります。どの Chromebook でもサポートされていない機能もあれば、一部の Chromebook でのみサポートされている機能もあります。

特長

Chromebook のハードウェア サポートを向上させるため、android.hardware.type.pc はマウスとタッチパッドの入力エミュレーションを無効にします。このエントリには required="false" を指定する必要があります。指定しない場合、アプリは Chromebook でしか実行できなくなります。

サポートされていないハードウェア機能

次のリストは、Chromebook でサポートされていないハードウェア機能を示しています。

  • android.hardware.camera: 背面カメラ
  • android.hardware.camera.autofocus: オートフォーカスを使用するカメラ
  • android.hardware.camera.capability.manual_post_processing: 自動ホワイト バランスをオーバーライドする機能など、MANUAL_POST_PROCESSING 機能を使用するカメラ
  • android.hardware.camera.capability.manual_sensor: 自動露出ロックのサポートなど、MANUAL_SENSOR 機能を使用するカメラ
  • android.hardware.camera.capability.raw: DNG(raw)ファイルを保存して DNG 関連のメタデータを提供する機能など、RAW 機能を使用するカメラ
  • android.hardware.camera.flash: フラッシュを使用するカメラ
  • android.hardware.camera.level.full: FULL レベルのイメージ キャプチャのサポートを使用するカメラ
  • android.hardware.consumerir: 赤外線(IR)
  • android.hardware.location.gps: 全地球測位システム(GPS)
  • android.hardware.nfc: 近距離無線通信(NFC)
  • android.hardware.nfc.hce: NFC カード エミュレーション(非推奨)
  • android.hardware.sensor.barometer: バロメーター(気圧)
  • android.hardware.telephony: データ通信サービスを備えた無線通信などの電話
  • android.hardware.telephony.cdma: CDMA(Code Division Multiple Access)電話通信ネットワークのサポート
  • android.hardware.telephony.gsm: GSM(Global System for Mobile Communications)電話通信ネットワークのサポート
  • android.hardware.type.automotive: Android Automotive OS デバイス
  • android.hardware.type.television: テレビ(非推奨)
  • android.hardware.usb.accessory: USB アクセサリ モード
  • android.hardware.usb.host: USB ホストモード

部分的にサポートされているハードウェア機能

次のリストは、一部の Chromebook で使用できるハードウェア機能を示しています。

  • android.hardware.sensor.accelerometer: 加速度計(デバイス画面の向き)
  • android.hardware.sensor.compass: コンパス
  • android.hardware.sensor.gyroscope: ジャイロスコープ(デバイスの回転と傾き)
  • android.hardware.sensor.light: light
  • android.hardware.sensor.proximity: (ユーザーに対する)近接センサー
  • android.hardware.sensor.stepcounter: 歩数計
  • android.hardware.sensor.stepdetector: 歩行検出機能

タッチスクリーン ハードウェアのサポート

ChromeOS バージョン M53 より、 android.hardware.touchscreen 機能の必要性を明示的に宣言していない Android アプリもすべて、 android.hardware.faketouch 機能をサポートする ChromeOS デバイスで動作するようになりました。

疑似タッチ インターフェースを備えたデバイスは、基本的なタッチイベントをエミュレートするユーザー入力システムを提供します。たとえば、ユーザーはマウスまたはリモコンを操作して、画面上のカーソルの移動、リストのスクロール、画面上での要素のドラッグなどを行うことができます。

疑似タッチ インターフェースを備えているものの、タッチスクリーンではないデバイスにアプリをインストールしないようにするには、次のいずれかの操作を実施します。

  • Google Play Console で特定のデバイスを除外する。
  • android.hardware.touchscreen をアプリをインストールする際の必須要件として明示的に宣言することで、タッチ スクリーン ハードウェアを搭載していないデバイスをフィルタする。

ソフトウェア機能

Chromebook でサポートされていないソフトウェア機能は、以下のリストのとおりです。

  • android.software.app_widgets: ホーム画面のアプリ ウィジェット
  • android.software.device_admin: デバイス ポリシーの管理
  • android.software.home_screen: デバイスのホーム画面の置き換え
  • android.software.input_methods: カスタムの入力方法( InputMethodService のインスタンス)
  • android.software.leanback: 大画面での表示用に設計された UI
  • android.software.live_wallpaper: アニメーション壁紙
  • android.software.live_tv: テレビ番組のライブ ストリーミング
  • android.software.managed_users: セカンダリ ユーザーと管理対象プロファイル
  • android.software.sip: ビデオ会議とインスタント メッセージをサポートする SIP(セッション開始プロトコル)サービス
  • android.software.sip.voip: 双方向のビデオ会議をサポートする、SIP に基いた VoIP(ボイスオーバー インターネット プロトコル)サービス

機能要件を暗黙的に伴う権限

マニフェスト ファイルでリクエストする一部の権限では、ハードウェア機能とソフトウェア機能の暗黙的なリクエストが作成される場合があります。こうした権限をリクエストすると、Chromebook にアプリをインストールできなくなります。

権限リクエストに起因して Chromebook でアプリが利用できなくなることを回避する方法については、このページの互換性のないマニフェスト エントリをご覧ください。

次の表に示す権限は、Chromebook との互換性をアプリから失わせる特定の機能要件を暗黙的に伴います。

表 1: Chromebook と互換性のないハードウェア機能を暗黙的に伴うデバイス権限。

カテゴリ この権限 暗黙的な機能要件
カメラ CAMERA android.hardware.camera
android.hardware.camera.autofocus
電話 CALL_PHONE android.hardware.telephony
CALL_PRIVILEGED android.hardware.telephony
MODIFY_PHONE_STATE android.hardware.telephony
PROCESS_OUTGOING_CALLS android.hardware.telephony
READ_SMS android.hardware.telephony
RECEIVE_SMS android.hardware.telephony
RECEIVE_MMS android.hardware.telephony
RECEIVE_WAP_PUSH android.hardware.telephony
SEND_SMS android.hardware.telephony
WRITE_APN_SETTINGS android.hardware.telephony
WRITE_SMS android.hardware.telephony