\Home\bin\Home.apk installed on device

在引用androd例子时,运行程序报:\Home\bin\Home.apk installed on device错误,解决办法,修改manifest文件里的内容

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.android.home">
    <uses-permission android:name="android.permission.CALL_PHONE"/>
    <uses-permission android:name="android.permission.GET_TASKS"/>
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="android.permission.SET_WALLPAPER" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>

    <application android:persistent="true"
          android:label="@string/home_title"
          android:icon="@drawable/ic_launcher_home">

        <activity android:name=".Home"
                android:theme="@style/Theme"
                android:launchMode="singleInstance"
                android:stateNotNeeded="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.HOME"/>
                <category android:name="android.intent.category.DEFAULT" />
               
  改成下句:
                <category android:name="android.intent.category.LAUNCHER" />
               
            </intent-filter>
        </activity>

        <activity android:name="Wallpaper"
                android:label="Wallpaper"
                android:icon="@drawable/bg_android_icon">
            <intent-filter>
                <action android:name="android.intent.action.SET_WALLPAPER" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

    </application>
</manifest>

 

可以通过使用 udev 规则实现在极短的时间内获取到 u 盘里面的 db.apk 版本号,同时不占用 u 盘的挂载路径,也不会引起下次插入 u 盘不能挂载的现象。具体实现步骤如下: 1. 编写一个 udev 规则文件,用于检测 u 盘插入事件,文件名为 /etc/udev/rules.d/10-usb.rules。 2. 在规则文件中添加以下内容: ``` ACTION=="add", SUBSYSTEMS=="usb", KERNEL=="sd*", KERNELS=="*", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", SYMLINK+="usbstick", RUN+="/usr/local/bin/check_db_version.sh" ``` 上述规则中,idVendor 和 idProduct 分别为 u 盘的厂商 ID 和产品 ID,可以通过 `lsusb` 命令获取。`SYMLINK` 用于创建一个 udev 设备符号链接,将 u 盘挂载到 `/dev/usbstick` 路径下。`RUN` 用于指定在 u 盘插入事件发生时执行的脚本,即 `/usr/local/bin/check_db_version.sh`。 3. 编写一个检查版本号的脚本 `/usr/local/bin/check_db_version.sh`,用于获取 u 盘里面 db.apk 的版本号,并与系统已安装版本进行比较。这个脚本可以通过使用 `unzip` 命令解压 u 盘里面的 db.apk 文件并读取其中的版本号信息,然后与系统已安装版本进行比较。 ``` #!/bin/sh APK_PATH="/dev/usbstick/db.apk" VERSION=$(unzip -p $APK_PATH "META-INF/MANIFEST.MF" | grep "^versionName" | cut -d':' -f2) INSTALLED_VERSION=$(adb shell dumpsys package com.example.db | grep versionName | cut -d'=' -f2) if [ "$VERSION" = "$INSTALLED_VERSION" ]; then echo "版本一致" else echo "版本不一致" fi ``` 上述脚本中,`APK_PATH` 指定 u 盘里面的 db.apk 文件路径,`VERSION` 通过 `unzip` 命令解压 db.apk 文件并读取其中的版本号信息。`INSTALLED_VERSION` 通过 `adb` 命令获取系统已安装的 db.apk 版本号。最后比较两个版本号是否一致。 通过上述步骤,即可实现在极短的时间内获取到 u 盘里面的 db.apk 版本号,同时不占用 u 盘的挂载路径,也不会引起下次插入 u 盘不能挂载的现象。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值