公司做一个定制的APP,就是开机就打开app,按home还是自己app。我找了很多都是修改framework,这样很麻烦,就相当编源码了(我觉得是这样)。正题:
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme" android:sharedUserId="android.uid.system"> <activity android:name=".activity.MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.HOME.SEADEE"/> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application>
我标记的地方 就是关键地方,这样写就会出现 下图
开机的时候会这样显示,还有app一直点返回到退出程序会显示这个。
首先解决 点击返回显示这个东西,就是拦截返回按钮。 我这里在MainActivity中加入此方法
@Override public void onBackPressed() { // super.onBackPressed(); }现在 基本就是完成了,还有一个主要的问题就是,每次要人选哪个是桌面很麻烦,所以思路就来了。Android本身的Launcher.apk
就是桌面,所以要么我们替换系统的Launcher.apk 要么就改源码,把跳转的链接 跳转到我们自己的apk,我这里实现的是前者。
cmd中运行:
adb push C:\Users\BAO\Desktop\HwLauncher6.apk /system/app 这样就OK了 但是出现一个问题,
报错:adb remount 失败:remount failed: Operation not permitted
发现是权限的问题。 通过以下方式获取权限
方法:
1:adb devices
会出现
就说明 你没有链接上,那么你就要看看是什么原因。我这里是360手机助手。
就是这两个货,
我很多时候AndroidStudio链接不上手机也是这个东西,把它结束进程,
它可能不会立刻关闭,你要等几秒,方正就是一定要关闭它们。
再次输入adb devices
就说明你成功了。
2:adb shell
su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
chmod 777 /system
cd system
chmod 777 app 注意网上很多都是这样,这个地方写错了导致不成功 是chmod 不是chomd
cd app
ls(这一步可以操作可以不操作,主要看你系统的launcher叫什么名字,输入ls 就出现所有apk 找到你的launcher 我这里是HwLauncher6.apk)
chmod 777 HwLauncher6.apk
exit
这样就获取操作/system/app/HwLauncher6.apk 记住是HwLauncher6.apk的读取修改操作 只有他的。
再次在cmd中运行adb push C:\Users\BAO\Desktop\HwLauncher6.apk /system/app
出现
ok 成功!