无头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: 亚行安装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" />
在物联网控制台中,我在构建过程中勾选了这些权限。
我不知道下一步该怎么做。任何帮助表示赞赏。
更新:我尝试将已检查的签名版本下载到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
?
答案 0 :(得分:0)
adb install -r -g C:\ 1 \ app-release.apk
可以解决问题。我错过了g标志。 g授予所有权限。