如何检测本地Android设备是否可穿戴?

问题描述:

我们的Android应用程序适用于普通设备以及可穿戴设备,如Google Glass等。如果应用程序在可穿戴设备上运行,则需要添加其他功能。是否有API来检查设备是否可穿戴?问候。如何检测本地Android设备是否可穿戴?

+3

鉴于弹性,Velcro(TM)和胶水,我可以让任何手机或平板电脑成为可穿戴设备。 “可穿戴”更像是一个营销名词,而不是技术声明。你可以通过'PackageManager','hasSystemFeature()'和'FEATURE_WATCH'来检测你是否在手表上运行。鉴于[文档](https://developer.android.com/reference/android/content/pm/PackageManager。“FEATURE_WATCH”的html#FEATURE_WATCH)有“这里的腕表被定义为佩戴在身体上的装置,也许是手腕上的装置”,它有可能对您有用。 – CommonsWare

+0

我不确定,但不能检查决议并决定。例如,如果分辨率是280x280或320x320。 –

+0

感谢您的评论。魔术贴/胶水部分+1。 – Peter

如果应用程序在手表上,手表可能连接到手机。使用穿戴式节点API来检测手机。这并不能保证如果设备没有连接,这不是手表。但是,只要假设,应用程序应该在手表上正常工作,只要它没有使用太多的内存。

另外,手表没有wifi(afaik),大多数手机都这样。检查wifi。然后决定“如果没有连接的节点,并且我们有无线网络,假设我们使用手机是安全的”。

同样,对于应用程序的工作,它应该没有关系。我不小心将手机应用程序安装在手表上,它运行良好,速度非常慢。

穿戴式可以通过使用uimode资源预选赛进行检测:

  1. 在项目的res /价值/ bool.xml文件,创建一个boolean资源与假,前值:<bool name="isawatch">false</bool>
  2. 创建在res一个新的文件夹,名为values-wear
  3. ,并创建一个真正的价值相同名称的布尔资源另一个bool.xml文件,<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!

你可以通过使用android.os.Build类来找出你的Android应用程序在哪个操作系统版本,产品,设备等上运行。

例如:你可以,如果您的应用程序通过这个对谷歌玻璃(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)。