AndroidThings 0.7升级0.8和1.0正式版过程中出现的一些问题的处理方法

我现在做的项目是树莓派+Androidtings,主要实现数据传输和一些工业级的日常响应及文件处理,前几天将Androidthings0.7.0升级到0.8,今天又将0.7和0.8升级到1.0,中间遇到了好多问题,主要包括以下一些:

一、修改intent filter

        在升级前查看Androidthings的API的时候发现,升级以后需要修改配置文件(AndroidManifest.xml),最开始的一点就是修改主页的路径配置,将原先的主路径“intent filter“中的“IOT_LAUNCHER ”改为了 “android.intent.category.HOME“,因为0.8.0以后“IOT_LAUNCHER ”将被弃用,而且API中说到,这个有利于启动硬件以后不会再退出Android软件,返回主界面

<!-- 启动时自启动android Things的主程序 -->
<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.HOME" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

二、运行调试报错:java.lang.SecurityException: Caller lacks required permission com.google.android.things.permission.USE_PERIPHERAL_IO (运行环境Androidstudio3.0)

        这个错误相对于第一个问题比较棘手,因为在0.7.0的时候,IO的控制不需要申明权限,但升级0.8.0以后,及Androidthings以后的版本中,Android软件控制PIO的时候需要声明控制权限。看过API的可能知道这一点,这个权限声明需要三步:

        1、在AndroidManifest.xml中添加一段:

<uses-permission android:name="com.google.android.things.permission.USE_PERIPHERAL_IO" />

        用来声明权限

        2、如果你在之前没有在树莓派或者是硬件上运行软件,那么直接用命令行执行以下命令:

    adb install -g app-release.apk

    也就是给硬件安装软件,其中“-g”是声明运行权限的,而后面的“app-release.apk”则是你在运行这行命令前生成(build)的apk安装包,因为我用的是Androidstudio3.0,所以生成的安装包在“\app\release”下,只需要将这个安装包复制到adb文件夹底下,执行命令就可以了,执行结果必须为“success”才可以,若是以下结果,则是失败


    若是你之前在树莓派或者是硬件上运行过软件,那么执行以下命令:

adb uninstall 【AndroidManifest.xml中的软件URL(manifest标签中package的值)】        ----卸载软件

接下来的方式跟上面没安装软件的方式相同

        3、在开发环境中run,如果以上两步都没问题的话,那么运行正常

猜你喜欢

转载自blog.csdn.net/liuli283/article/details/80237331
今日推荐