2017-05-24 5 views
4

ランタイムチェックを実行して、デバイスがAndroid-Thingsを実行しているかどうかを確認できますか?デバイスがAndroid-Thingsを実行しているかどうかをチェック

+0

別のAndroid搭載デバイスとは何か違うことをしたいのですか?たとえば、Things固有のAPIクラスを使用する場合は、Class.forName()を使用してそれらが存在するかどうかを確認します。 – CommonsWare

+0

まあ、私はアンドロイドのために同じアプリを持つことができるかどうかを調べようとしています。アンドロイドデバイスで手動入力を求めている間、 –

+1

私は、あなたの意思決定基準が「それは何ですか?」ではなく、「スクリーンを持っていますか? Androidは画面と入力デバイスを持つことができます。ユーザーは手動で入力することができます。 – CommonsWare

答えて

6

あなたはPackageManagerすべてのAndroid物事のデバイスによって実現されFEATURE_EMBEDDED、のために照会することができます

public boolean isThingsDevice(Context context) { 
    final PackageManager pm = context.getPackageManager(); 
    return pm.hasSystemFeature(PackageManager.FEATURE_EMBEDDED); 
} 

この定数は、最近のAndroid OプレビューSDKに追加されました。 OをベースにしたAndroidのThingsプレビューがリリースされるまで、定数のリテラル名を使用する必要があります:android.hardware.type.embedded

+0

ありがとう!私はこのようなものを探していた。 –

1

AndroidThingsで作成したapkは、IoTコンソールでなく、プレイストアのにアップロードされます。

したがって、単一のコードベースを使用する場合は、Gradle Flavors and a flagを使用することをお勧めします。つまり、実行時にのチェックを行う代わりに、「実行中のプラットフォーム」を実行するのではなく、2つの別々のAPKを構築します。

これにより、メモリが制約された別々のプラットフォームの両方で、APKが最小サイズになります。 (たとえば、Android Thingsで使用されるGoogle Playサービスのフレーバーは、一般的なAndroidアプリで使用できるもののスリムなバージョンです)。 Android Things supports a subset of the Google APIs for Android. The linked table breaks down API support in Android Things.

関連する問題