我们的Android应用适用于常规设备以及可穿戴设备,例如Google Glass等。如果应用在可穿戴设备上运行,我需要添加其他功能。是否有API来检查设备是否是可穿戴设备?问候。
答案 0 :(得分:0)
如果应用程序在手表上,手表可能已连接到手机。使用Wearable NodeAPI检测手机。这并不能保证如果设备没有连接,它就不是手表。但是,假设,应用程序应该在手表上正常工作,只要它不会占用太多内存。
此外,手表没有wifi(afaik),大多数手机都有。检查wifi。然后决定"如果没有连接节点,并且我们有wifi,我们可以安全地假设我们在电话上#34;
同样,对于应用程序的工作,它并不重要。我不小心将手机应用程序安装在手表上,效果很好,速度非常慢。
答案 1 :(得分:0)
可以使用uimode使用资源限定符检测可穿戴设备:
<bool name="isawatch">false</bool>
values-wear
,<bool name="isawatch">true</bool>
总而言之,
<强> RES /值/ bool.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="isawearable">false</bool>
</resources>
<强> RES /值磨损/ bool.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="isawearable">true</bool>
</resources>
现在您应该可以针对您的应用需求致电context.getResources().getBoolean(R.id.isawearable)
了。
作为一个加号,您可以在此处列出的Android文档表中找到其他可用的应用限定符,https://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources
HTHS!
答案 2 :(得分:0)
你可以通过使用android.os.Build类找出你的Android应用程序在哪个OS Build,Product,Device等上运行。
例如:您可以通过以下方式检测您的应用是否在Google Glass(API 19)上运行:
if(Build.VERSION.SDK_INT==Build.VERSION_CODES.KITKAT){
Log.e("SDK_INT",""+Build.VERSION.SDK_INT);
Log.e("MODEL",""+Build.MODEL);
Log.e("DEVICE",""+Build.DEVICE);
Log.e("TYPE",""+Build.TYPE);
Log.e("HARDWARE",""+Build.HARDWARE);
Log.e("BRAND",""+Build.BRAND);
Log.e("DISPLAY",""+Build.DISPLAY);
Log.e("MANUFACTURER",""+Build.MANUFACTURER);
Log.e("PRODUCT",""+Build.PRODUCT);
} else {
Log.e("Other",""+Build.VERSION.SDK_INT);
}
记录结果
09-13 17:58:42.835 24240-24240/com.example.myxlab.beyondartest E/SDK_INT: 19
09-13 17:58:42.835 24240-24240/com.example.myxlab.beyondartest E/MODEL: Glass 1
09-13 17:58:42.835 24240-24240/com.example.myxlab.beyondartest E/DEVICE: glass-1
手表也是如此(API 20)。