0

我有需要接收BOOT_COMPLETED广播的 Android 应用程序。但是,最好将我的应用程序安装到外部存储中。我知道只有安装到内部存储中的应用程序才能接收到这个广播,所以我想知道有没有办法将广播接收器从应用程序单独安装到内部存储中?

我试图通过以下清单来实现这一点:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example"
      android:versionCode="1"
      android:installLocation="preferExternal"
      android:versionName="1.0">

<uses-sdk
    android:minSdkVersion="10"
    android:targetSdkVersion="17"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS"/>
<uses-permission android:name="com.android.vending.BILLING"/>

<application
    android:name=".MyApplication"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:icon="@drawable/app_icon">

    <receiver android:name="com.example.BootCompletedReceiver"
              android:enabled="true"
              android:permission="android.permission.RECEIVE_BOOT_COMPLETED"
              android:installLocation="internalOnly">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
            <action android:name="android.intent.action.USER_PRESENT"/>
        </intent-filter>
    </receiver>

    <activity
        android:name=".activities.SplashActivity"
        android:screenOrientation="portrait"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

   ...............

</application>
 </manifest>

但这似乎不起作用。有任何想法吗?或者也许我可以用其他方式处理这个广播?

4

0 回答 0