试图从gpio读取模拟数据,但只看到一种将信号强度返回为LOW或HIGH(boolean)的方法.在文档和代码参考中找不到任何解决方案.现在甚至可能吗?
我注意到在Android Things contrib-driversrepo中有一些这样的.driver-metadata文件(每个不同的驱动程序文件夹中有一个).有谁知道他们的目的是什么?
示例:https://github.com/androidthings/contrib-drivers/blob/master/rainbowhat/.driver-metadata
谢谢!
我希望能够检测到外围传感器何时没有连接到我的Raspberry Pi 3.
例如,如果我有一个GPIO被动红外传感器.
我可以得到这样的所有GPIO端口:
PeripheralManagerService manager = new PeripheralManagerService();
List<String> portList = manager.getGpioList();
if (portList.isEmpty()) {
Log.i(TAG, "No GPIO port available on this device.");
} else {
Log.i(TAG, "List of available ports: " + portList);
}
Run Code Online (Sandbox Code Playgroud)
然后我可以连接到这样的端口:
try {
Gpio pir = new PeripheralManagerService().openGpio("BCM4")
} catch (IOException e) {
// not thrown in the case of an empty pin
}
Run Code Online (Sandbox Code Playgroud)
然而,即使引脚是空的,我仍然可以连接到它(这在技术上是有意义的,因为gpio只是二进制打开或关闭).似乎没有任何api,我无法合理地从逻辑上考虑如何区分连接外围传感器的引脚和"空"的引脚.
因此,目前我无法以编程方式断言我的传感器和电路设置正确.
有人有主意吗?从电子产品的角度来看,它甚至可能吗?
参考文档:
我正在尝试写一个关于AT的值.我已经在清单中声明了以下所需的许可,
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
Run Code Online (Sandbox Code Playgroud)
并尝试在运行时请求权限,AT显示有关权限设置的窗口.但是,该开关不可点击.关于AT 文件
不支持在运行时请求权限,因为不保证嵌入式设备具有接受运行时对话框的UI.在应用程序的清单文件中声明所需的权限.在应用程序清单中声明的所有正常和危险权限都将在安装时授予.
然而Settings.System.canWrite()总是回来false.
是否有任何特殊方法可以启用权限WRITE_SETTINGS?
我在Raspberry Pi上运行Android Things 0.4.我正在按照这个教程写信:
https://developer.android.com/things/training/first-device/peripherals.html
一旦我按下第一个按钮,我就决定在继续学习本教程的led部分之前添加第二个按钮.我知道硬件设置对于第一个按钮是正确的,所以我在第二个按钮上复制了它,但是由于某种原因我无法理解按钮没有按预期运行.第一个按钮触发两个按钮的事件侦听器.第二个按钮将触发一个方向,并且在按下第二个按钮后按下第一个按钮之前不会再次触发.
我是一位经验丰富的Android开发人员,但对IoT和Things来说却是新手.这是我的代码:
public class MainActivity extends Activity {
private static final String TAG = "ButtonActivity";
private static final String INC_BUTTON_PIN_NAME = "BCM4"; // GPIO port wired to the button
private static final String DEC_BUTTON_PIN_NAME = "BCM17"; // GPIO port wired to the button
private Gpio mIncButtonGpio;
private Gpio mDecButtonGpio;
Handler mHandler = new Handler(Looper.getMainLooper());
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PeripheralManagerService service = new PeripheralManagerService();
try {
// Step 1. Create GPIO connection.
mIncButtonGpio …Run Code Online (Sandbox Code Playgroud) 我正在使用 Raspberry Pi 3 创建一个 Android Things 设备,它将连接到监视器。显示器应该一直开着,但我想要一种“关闭”设备的方法(关闭 HDMI 输出,以便显示器可以进入低功耗待机模式),以便我可以打开设备远程或使用计时器打开和关闭,而不必手动按下显示器的电源按钮。
有没有办法在 Android Things 项目中控制 Raspberry Pi 的 HDMI 输出(打开或关闭显示器)?
当尝试在我的 Android Things webview 中加载 url 时,页面最初加载,然后 UI 崩溃,错误消息指向 IoT FrameworkPackageStubs。
我在 Dev Preview 5.1 上使用 Raspberry Pi,它支持 Webviews 和 OpenGL,但不知道为什么我的非常简单的应用程序似乎崩溃了。它的代码如下
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = (WebView) findViewById(R.id.webView);
if(webView != null)
webView.loadUrl("https://www.facebook.com");
}
Run Code Online (Sandbox Code Playgroud)
这是我的清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.airborneathletics.videohwtest">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<uses-library android:name="com.google.android.things" android:required="false"/>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
和我的 …
我的应用中有以下代码可供访问PeripheralManagerService:
PeripheralManagerService service = new PeripheralManagerService();
Gpio ledGpio;
try {
ledGpio = service.openGpio("BCM6");
ledGpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW);
} catch (IOException e) {
Log.e(TAG, "Error configuring GPIO pins", e);
}
Run Code Online (Sandbox Code Playgroud)
更新到最新的Android Things(开发人员预览版7)后,我的应用程序现在正在抛出NoClassDefFoundError:
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/things/pio/PeripheralManagerService;
...
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.things.pio.PeripheralManagerService" on path: DexPathList[...]
Run Code Online (Sandbox Code Playgroud)
此代码之前正在运行,为什么在更新后这种情况开始发生?
我以前从未制作过 Android 应用程序,这不是一个好的开始。我在 Android 工作室做了一个空白项目作为测试,并尝试在我的华为 P33 手机上运行该程序。当我尝试构建和安装程序时,我收到以下消息;
无法使用命令 cmd package install-commit 389180709 提交安装会话 389180709。错误:INSTALL_FAILED_MISSING_SHARED_LIBRARY:无法在 /data/app/com.example.myapplication-segdjrVZj4KvtCNaJ5W5oQ 中安装包。图书馆 com.google.android.things; 失败!
会话“应用程序”:安装未成功。无法安装应用程序:INSTALL_FAILED_MISSING_SHARED_LIBRARY 重试
我花了大约一个半小时的谷歌搜索,但似乎没有人对 Android Things 库有同样的问题。
在“AndroidManifest.xml”中,如果我更改<uses-library android:name="com.google.android.things" />为<uses-library android:name="com.google.android" />,应用程序会安装但不执行任何操作并在打开后立即崩溃。
我正在尝试使用 flutter、android things 和 raspberry pi 构建一个基于 IoT 的项目。为此,我需要通过我的 flutter 应用程序访问树莓派 GPIO 引脚。
首先,我在树莓派上安装了 android things os 并将显示器连接到它。之后,我必须构建一个 flutter 应用程序并上传,它工作正常,但现在我需要控制 GPIO,所以我用 google 搜索了它,但除了可以访问树莓派 GPIO 引脚的 rpi_gpio dart 库之外什么也没找到,但显然它不起作用颤振依赖。
那么有没有办法建议我,以便我可以完成我的项目。
android-things ×10
android ×3
iot ×2
dart ×1
flutter ×1
hdmi ×1
java ×1
permissions ×1
raspberry-pi ×1
webview ×1