为什么不同的主板在Android Things中具有不同的GPIO名称?
例如,在PI覆盆子3,还有BCM6,而英特尔爱迪生与Arduino的突破有IO12,IO13等
我用Android Things图像刷了我的Raspberry Pi 3,我无法将它连接到我的wifi网络.我已经运行了adb设备,但没有得到回应.
新手总数,我有一个Raspberry Pi,并已启动Android Things磁盘映像并启动它,但我无法从运行Android Studio的Windows 10 PC ,通过以太网或USB 连接到它?该皮屏幕上有一个绿色和灰色"androidthings"的标志,但是他说"未连接".adb.exe
如果我连接USB电缆并使用该adb devices命令,则不会检测到任何内容.如果我连接以太网电缆并使用adb connect android.local命令,它说unable to connect to android.local:5555?
我尝试了两个具有相同结果的Pi.
我想使用此代码重新启动运行Android Things的RPI3:
public static void Reboot()
{
try {
Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", "reboot"});
proc.waitFor();
} catch (Exception ex) {
ex.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
java.io.IOException:无法运行程序"su":error = 13,权限被拒绝
我向清单添加了所有权限
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<uses-permission android:name="android.permission.ACCESS_SUPERUSER" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.SET_TIME_ZONE"/>
<uses-permission android:name="android.permission.SHUTDOWN"/>
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
在Raspberry Pi上安装Android Things后,时间不正确.我的时区是GMT + 2,使用date +%Z我看到RPi的时区是GMT.我该如何设置时区?
有人成功创建了Android Things Bundle并将其推上了OTA吗?
在Android Things的控制台上,有一个为OTA 创建捆绑包的页面.
我正在试图弄清楚如何做到这一点.我将只是一个单一的APK文件main.apk到ZIP文件中.然后我试着把它推到附近的RPi.但是main.apk不会在设备上启动.
我尝试过的事情:
Empty bundle用Things Build ID= 下载NIH40KOTA UPDATESFACTORY IMAGE使用新创建的包创建新的adb connect Andorid.local,它按设计工作但我无法进行OTA更新.有人成功了吗?
这是我在Github上的项目:https: //github.com/ViliusKraujutis/Android-Things-Demo
谢谢
我正在为带有RFID阅读器RC522的Android Things设备开发软件.我使用这个库:https://github.com/Galarzaa90/android-things-rc522
我的任务是查询RC533 RFID阅读器:
protected Boolean doInBackground(Object... params) {
mRc522.stopCrypto();
while (true) {
........
byte[] uuid = mRc522.getUid();
return mRc522.selectTag(uuid);
}
}
Run Code Online (Sandbox Code Playgroud)
在我的活动中,我使用它将UID值转换为字符串:
String tagRC522 = toHexString(mRc522.getUid(), "")
Run Code Online (Sandbox Code Playgroud)
我们生态系统中的另一个应用程序用于扫描Android智能手机上的NFC标签:
public void onNewIntent(Intent intent) {
Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
String tagNFC = bytesToHex(tagFromIntent.getId());
....
}
Run Code Online (Sandbox Code Playgroud)
Play商店中的其他应用程序(例如NFC工具)提供与上述智能手机应用程序代码相同的结果.
我现在面临的问题是tagRC522(使用RC522的Android Things设备上的值)与值tagNFC(在智能手机应用程序中)不匹配.
Tag1
tagRC522 = 45DOD86528
tagNFC = 45DOD865
Tag2
tagRC522 = 3567500103
tagNFC = 35675001
Tag3
tagRC522 = 88046f12F1
tagNFC = 046F12CA193A84
Tag4
tagRC522 = … 我有一个运行 Android Things 的 Raspberry Pi 3。为简单起见,假设它仅旋转步进电机。
为了再次简化事情,步进电机通过逐个线圈地告诉哪些线圈充电和哪些不充电来旋转。在 Raspberry Pi 中,您将四个输出引脚连接到步进电机的四个输入引脚。然后,您按连续顺序逐个启动引脚,每次运行之间间隔几毫秒。
如果我通过按停止“MainActivity”来停止 Android Studio 中的程序,程序代码将被终止,但 Raspberry Pi 中的输出引脚仍保持充电状态。就我而言,如果我在 Android Studio 中停止该程序,我的一个步进电机线圈仍然带电(并变得过热)。
问题:在程序关闭之前在 Android 中进行清理的最佳方法是什么?
我尝试过 onDestroy() 和 onPause() 但都不能保证在程序关闭时调用它们。(他们也从未在我的情况下工作过)。
我还尝试添加关闭挂钩,但即使这样也不会关闭输出引脚。shutdownhook 位于 MainActivity 的 onCreate() 方法中,如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Runtime.getRuntime().addShutdownHook(new Thread(){
@Override
public void run(){
try{
mRobotics.stopMotor();
} catch (Exception e){
// Ignore error
}
}
});
// onCreate continues...
Run Code Online (Sandbox Code Playgroud)
stopMotor() 方法如下所示:
public void stopMotor(){
this.motorHandler.removeCallbacksAndMessages(null);
try {
mStepper1.setValue(false);
mStepper2.setValue(false);
mStepper3.setValue(false);
mStepper4.setValue(false);
} catch (Exception e){
// …Run Code Online (Sandbox Code Playgroud) 我正在尝试:
BluetoothAdapter.getDefaultAdapter().startLeScan()
我添加了所有必需的权限(我认为):
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)
请注意,Android内容不支持运行时权限,无论它是否基于Android 7.0运行
而我在日志中得到的是:
java.lang.SecurityException: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results
Run Code Online (Sandbox Code Playgroud)
根据文档,它应该能够开始扫描具有所有权限,但由于某种原因它不想.
我0.4.0-devpreview在Raspberry Pi 3上使用Android Things
android-things ×10
android ×4
iot ×2
java ×2
adb ×1
bluetooth ×1
networking ×1
nfc ×1
ota ×1
process ×1
raspberry-pi ×1
rfid ×1
runtime.exec ×1
settings ×1
terminate ×1
timezone ×1
usb ×1