标签: android-things

如何从GPIO,Android-things读取模拟数据

试图从gpio读取模拟数据,但只看到一种将信号强度返回为LOW或HIGH(boolean)的方法.在文档和代码参考中找不到任何解决方案.现在甚至可能吗?

android-things

6
推荐指数
1
解决办法
1478
查看次数

什么是Android Things中使用的.driver-metadata文件?

我注意到在Android Things contrib-driversrepo中有一些这样的.driver-metadata文件(每个不同的驱动程序文件夹中有一个).有谁知道他们的目的是什么?

示例:https://github.com/androidthings/contrib-drivers/blob/master/rainbowhat/.driver-metadata

谢谢!

android iot android-things

6
推荐指数
1
解决办法
201
查看次数

如何判断外围设备是否连接到GPIO?

我希望能够检测到外围传感器何时没有连接到我的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,我无法合理地从逻辑上考虑如何区分连接外围传感器的引脚和"空"的引脚.

因此,目前我无法以编程方式断言我的传感器和电路设置正确.

有人有主意吗?从电子产品的角度来看,它甚至可能吗?

参考文档:

https://developer.android.com/things/sdk/pio/gpio.html

android-things

6
推荐指数
1
解决办法
641
查看次数

如何申请Android Things的权限?

我正在尝试写一个关于AT的值.我已经在清单中声明了以下所需的许可,

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
Run Code Online (Sandbox Code Playgroud)

并尝试在运行时请求权限,AT显示有关权限设置的窗口.但是,该开关不可点击.关于AT 文件

不支持在运行时请求权限,因为不保证嵌入式设备具有接受运行时对话框的UI.在应用程序的清单文件中声明所需的权限.在应用程序清单中声明的​​所有正常和危险权限都将在安装时授予.

然而Settings.System.canWrite()总是回来false.

是否有任何特殊方法可以启用权限WRITE_SETTINGS

permissions android android-things

6
推荐指数
2
解决办法
3062
查看次数

为什么按下一个按钮触发处理程序

我在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 iot android-things

6
推荐指数
1
解决办法
472
查看次数

在 Raspberry PI 3 上使用 Android Things 关闭 HDMI 输出

我正在使用 Raspberry Pi 3 创建一个 Android Things 设备,它将连接到监视器。显示器应该一直开着,但我想要一种“关闭”设备的方法(关闭 HDMI 输出,以便显示器可以进入低功耗待机模式),以便我可以打开设备远程或使用计时器打开和关闭,而不必手动按下显示器的电源按钮。

有没有办法在 Android Things 项目中控制 Raspberry Pi 的 HDMI 输出(打开或关闭显示器)?

hdmi raspberry-pi3 android-things

5
推荐指数
0
解决办法
703
查看次数

Webview loadurl 崩溃

当尝试在我的 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)

和我的 …

java android webview android-things

5
推荐指数
1
解决办法
2888
查看次数

PeripheralManagerService抛出NoClassDefFoundError

我的应用中有以下代码可供访问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-things

5
推荐指数
1
解决办法
3272
查看次数

尝试运行 Android 应用程序时出现 INSTALL_FAILED_MISSING_SHARED_LIBRARY 错误

我以前从未制作过 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" />,应用程序会安装但不执行任何操作并在打开后立即崩溃。

android-studio android-things

5
推荐指数
3
解决办法
2万
查看次数

有没有办法使用在 android 上运行的 flutter 应用程序访问或控制树莓派 GPIO 引脚?

我正在尝试使用 flutter、android things 和 raspberry pi 构建一个基于 IoT 的项目。为此,我需要通过我的 flutter 应用程序访问树莓派 GPIO 引脚。

首先,我在树莓派上安装了 android things os 并将显示器连接到它。之后,我必须构建一个 flutter 应用程序并上传,它工作正常,但现在我需要控制 GPIO,所以我用 google 搜索了它,但除了可以访问树莓派 GPIO 引脚的 rpi_gpio dart 库之外什么也没找到,但显然它不起作用颤振依赖。

那么有没有办法建议我,以便我可以完成我的项目。

dart flutter raspberry-pi3 android-things

5
推荐指数
1
解决办法
2937
查看次数