如何在pi3上安装签名版本?

时间:2019-04-18 09:47:58

标签: raspberry-pi3 iot

无头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

1 个答案:

答案 0 :(得分:0)

adb install -r -g C:\ 1 \ app-release.apk

可以解决问题。我错过了g标志。 g授予所有权限。