【发布时间】:2019-04-18 21:39:58
【问题描述】:
Headless Pi3,Android Things,运行灌溉应用程序,通过 wifi 连接以通过 Nanohttpd 提供用户界面。我应该提一下,该应用仅供我个人在我的 pi 上使用 - 我并不想推销它或在其他任何地方运行它。
我之前写过我的灌溉应用程序每天失败一次左右,但没有相关的错误消息。我意识到这是因为我一直在使用未签名的 apk 进行测试,现在我读到在此过程中添加了限时签名。我的应用程序在达到时间限制时死掉了。
所以我一直在尝试安装签名版本,但到目前为止都失败了。
我已将签名版本上传到 Things 控制台,并使用它来生成自定义构建。当我将 sd 卡放入我的 pi 时,应用程序运行,但我没有机会输入 wifi 连接详细信息。我试图让我的应用程序不是默认应用程序,希望能在启动时看到 Things 工具包,这样我就可以输入 wifi 详细信息。我还没有成功。
我已尝试在我的 onCreate() 中调用此代码:
private void connectToWifi() {
String networkSSID = "***";
String networkPass = "***";
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + networkSSID + "\""; // Please note the quotes. String should contain ssid in quotes
conf.preSharedKey = "\""+ networkPass +"\"";
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
//remember id
int netId = wifiManager.addNetwork(conf);
wifiManager.disconnect();
wifiManager.enableNetwork(netId, true);
wifiManager.reconnect();
}
并向 AndroidManifest.xml 添加 wifi/网络权限,但该应用程序仅短暂运行,我失去了 wifi 连接。
我尝试通过 Android Studio 安装签名版本,但我得到“密码验证失败”。我已经尝试清理和重建项目。
我尝试过直接使用 adb: adb install C:\AndroidStudioProjects\irrigator\app-release.apk 但我明白了
'权限失败:com.google.android.things.permission.USE_PERIPHERAL_IO'
即使我的 AndroidManifest.xml 中有这些权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.things.permission.USE_PERIPHERAL_IO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在 Things Console 中,我在构建过程中勾选了这些权限。
我不知道接下来该尝试什么。非常感谢任何帮助。
更新:我已尝试下载已签入 Android 控制台的签名版本。即使在控制台上显示的权限列表中显示:
android.permission.INTERNET
com.google.android.things.permission.USE_PERIPHERAL_IO
我仍然得到 logcat 中显示的错误:
java.lang.SecurityException: Caller lacks required permission com.google.android.things.permission.USE_PERIPHERAL_IO
?
【问题讨论】:
标签: raspberry-pi3 iot