我正在玩Google Open Accessory 我已经在Arduino Mega ADK上进行了简单的实现测试 .NET MF芯片(c#)上的实现。
当我将任一设备连接到便宜的平板电脑时,例如ONDA V712
(http://www.onda-sale.com/onda-v712-dual-core-7-inch-16gb.html),
平板电脑检测到配件并要求我安装所需的APK。
但是,如果我将任一设备连接到Samsung Galaxy S3,Note II或Note 8,它都不起作用。
Galaxy简单地说:“连接为USB媒体设备”。
我发现很难相信Galaxy系列设备与#android开放式配件不兼容,所以这些设备可能需要某种配置调整?为了给出一个想法,Arduino Mega ADK的代码取自WROX的样本:
#include <AndroidAccessory.h>
#include <ch9.h>
#include <Max3421e.h>
#include <Max3421e_constants.h>
#include <UsbHost.h>
char application [] = "wrox_temperature_sensor";
char accessory [] = "wrox_temperature_sensor";
char company [] = "Wiley";
char versionNbr[] = "1.0";
char serialNbr[] = "1";
char url[] = "http://media.wiley.com/product_ancillary/66/11184547/DOWNLOAD/t.apk";
int sensorPin = 0;
long timer = millis();
AndroidAccessory usb(company, application, accessory, versionNbr, url,serialNbr);
void setup()
{
usb.begin();
}
void loop()
{
if (usb.isConnected())
{
if( millis() - timer > 10 )
{
int val = analogRead( sensorPin );
float voltage = (val * 5.0) / 1024.0;
float tempCelcius = voltage * 100;
float tempKelvin = tempCelcius + 273.15;
byte * b = (byte *) &tempKelvin;
usb.write(b, 4);
timer = millis();
}
}
}
但我认为Arduino / NetMF设备不是问题。
我还使用12v适配器为Arduino供电 足够的汁液为Galaxy设备供电/充电。
连接到Galaxy设备时的Arduino输出:
设备寻址...请求设备描述符。发现可能 设备。切换到串行模式无法读取设备协议
版本
连接到昂达设备时的Arduino输出:
设备寻址...
请求设备描述符。发现机器人 acessory device
config desc interface desc
1
2
我还检查了每个Galaxy设备上是否有文件 表示AOA支持,并且有:' /etc/permissions/android.hardware.usb.accessory.xml '
<permissions>
<feature name="android.hardware.usb.accessory" />
<library name="com.android.future.usb.accessory"
file="/system/framework/com.android.future.usb.accessory.jar" />
</permissions>
注意:
在Arduino方面,我正在使用UsbHost
的{{1}}库
我从ADK网站上下载的。该存档包含两个版本,版本1和版本2,但使用版本2,代码和示例甚至不编译。
每个Galaxy设备都使用Android 4.1.1或更高版本。