我无法使用BOOT_COMPLETED intent获取调用的BroadcastReceiver onReceive方法.
AndroidManifest.xml中
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.jerrellmardis.umbrella" android:versionCode="4" android:versionName="1.0.3"> <application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar"> <activity android:name=".activities.Umbrella" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".activities.Preferences" android:label="@string/app_name" android:screenOrientation="portrait" /> <receiver android:name="com.jerrellmardis.umbrella.receiver.WeatherStartupReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> <service android:name=".service.WeatherUpdateService"> <intent-filter> <action android:name="com.jerrellmardis.umbrella.service.WeatherUpdateService" /> </intent-filter> </service> </application> <uses-sdk android:minSdkVersion="3" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> </manifest>
WeatherStartupReceiver.java
package com.jerrellmardis.umbrella.receiver; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.provider.Contacts.People; import android.util.Log; import com.jerrellmardis.umbrella.R; public class WeatherStartupReceiver extends BroadcastReceiver { private NotificationManager mNotificationManager; private int SIMPLE_NOTFICATION_ID; @Override public void onReceive(Context context,Intent intent) { // Do something interesting here... } }
解决方法
接收BOOT_COMPLETED广播的所有应用程序必须安装在内部存储上,因为Android在将外部存储装入设备之前传送ACTION_BOOT_COMPLETED广播.
要确保您的应用程序将安装在内部存储器上,您只需要声明android:installLocation清单属性.
另一个选择是在清单部分设置以下内容:android:installLocation =“internalOnly”
您可以在其中找到有关它的更多信息here.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。