ブロードキャストを受信する必要があるAndroidアプリケーションがありますBOOT_COMPLETED
。ただし、アプリケーションを外部ストレージにインストールすることが望ましいです。内部ストレージにインストールされたアプリケーションのみがこのブロードキャストを受信できることを知っているので、ブロードキャストレシーバーをアプリとは別に内部ストレージにインストールする方法はあるのでしょうか?
私は次のマニフェストでこれを達成しようとしました:
<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>
しかし、これはうまくいかないようです。何か案は?または、このブロードキャストを別の方法で処理できますか?