android AndroidManifest文件中 android:installLocation="preferExternal"的作用

记录开发遇到一个细节代码

昨天快下班的时候,接到现场提出了一个需求:在项目中加上开机自启应用的功能。我说这个简单啊,就是监听开机广播嘛,用不了几分钟就可以搞定了,然后我就开始写代码,主要是改两个地方:

1、AndroidManifest.xml文件

 <!-- 监听开机的广播 -->
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:Android="http://schemas.android.com/apk/res-auto"
          package="com.tecsun.tsb.xy"
          android:installLocation="preferExternal"
          android:versionCode="5"
          android:versionName="5.0.0.180109">

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<application
.........

   <!-- 开机启动的广播 -->
        <receiver
            android:name="com.tecsun.tsb.broadcast.XYBootUpReceiver"
            android:enabled="true"
            android:permission="android.permission.RECEIVE_BOOT_COMPLETED"
            >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>

    </application>

</manifest>

2、XYBootUpReceiver.java文件
public class XYBootUpReceiver extends BroadcastReceiver {

    private static final String TAG = XYBootUpReceiver.class.getSimpleName();

    @Override
    public void onReceive(Context context, Intent intent) {
         Log.d(TAG,"onReceive===================");
         Intent i = new Intent(context, SplashActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
    }

}

我用4.4.4的测试机(笔者公司是做android平板开发,机器是自己生产的)测试,完美,没有问题,然后我就提交给现场的项目经理,说:大哥,赶紧测试一下,我要下班。然后我就开始收拾东西,准备下班!

过了2分钟,现场的项目经理说:我重新安装了,没见到开启启动啊,你用4.0.2系统的旧机器试一下。

我去拿4.0.2系统的机器试一下,尼玛,果然没启动,什么鬼。然后就开始一顿排查:先是排除机器的问题,然后确定是代码某个配置导致的问题,最后经过与同事排查测试,确定了根源问题:

《android AndroidManifest文件中 android:installLocation= image.png

就是因为AndroidManifest文件中配置了 android:installLocation=”preferExternal”这一句,然后导致开机接收不了开机的广播。

分享一篇在网上找的文章,详细介绍了 android:installLocation这个设置

    原文作者:追梦小乐
    原文地址: https://www.jianshu.com/p/be4d5966f13a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞