Reputation: 1489
NOTE: I have surfing stackoverflow answer before asking this, so don't make it duplicate
I am trying to create app which is run in background mode,there is not any activity in my application, my application should work like After 10 minutes it will check call log and if it was changed from last then it should send call log to server. I have tried with boot_completed intent
public class BootUpReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.d("schedulereceiver", "starting schedule");
}
}
and i have declare receiver like
<receiver
android:name="com.ixo.BootUpReceiver"
android:enabled="true" android:exported="false"
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>
I have added permission
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
I want to clear, I am testing on 4.2 version, and its nexus tablet, hope it is not creating problems
if I am checking log
> 02-26 12:31:10.809: W/ActivityManager(478): No content provider found
> for permission revoke: file:///data/local/tmp/Tracker.apk
02-26 12:31:10.809: I/PackageManager(478): Copying native libraries to
> /data/app-lib/vmdl1018712645
02-26 12:31:10.889: D/dalvikvm(478): GC_CONCURRENT freed 1347K, 13% free 13294K/15184K, paused 3ms+7ms, total 62ms 02-26 12:31:10.889: I/PackageManager(478): Removing non-system package:com.ixo.tracker
02-26 12:31:10.899: I/ActivityManager(478): Force stopping package com.ixo.tracker appid=10100 user=-1
02-26 12:31:10.989: I/PackageManager(478): Running dexopt on: com.ixo.tracker
02-26 12:31:10.989: I/PackageManager(478): Package com.ixo.tracker codePath changed from
/data/app/com.ixo.tracker-2.apk to /data/app/com.ixo.tracker-1.apk; Retaining data and using new
02-26 12:31:11.049: D/dalvikvm(2434): DexOpt: 'Landroid/annotation/SuppressLint;' has an earlier definition; blocking out
Update
some time I am getting log like
02-26 13:42:22.139: E/InstalledAppDetails(6171): Exception when retrieving package:com.ixo.tracker
02-26 13:42:22.139: E/InstalledAppDetails(6171): android.content.pm.PackageManager$NameNotFoundException: com.ixo.tracker
02-26 13:42:22.139: E/InstalledAppDetails(6171): at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:80)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at com.android.settings.applications.InstalledAppDetails.retrieveAppEntry(InstalledAppDetails.java:621)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at com.android.settings.applications.InstalledAppDetails.refreshUi(InstalledAppDetails.java:640)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at com.android.settings.applications.InstalledAppDetails.onActivityResult(InstalledAppDetails.java:534)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at android.app.Activity.dispatchActivityResult(Activity.java:5297)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at android.app.ActivityThread.deliverResults(ActivityThread.java:3315)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3362)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at android.app.ActivityThread.access$1100(ActivityThread.java:141)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1282)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at android.os.Handler.dispatchMessage(Handler.java:99)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at android.os.Looper.loop(Looper.java:137)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at android.app.ActivityThread.main(ActivityThread.java:5041)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at java.lang.reflect.Method.invokeNative(Native Method)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at java.lang.reflect.Method.invoke(Method.java:511)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-26 13:42:22.139: E/InstalledAppDetails(6171): at dalvik.system.NativeStart.main(Native Method)
02-26 13:42:22.169: W/AppSecurityPermissions(6171): Couldn't retrieve permissions for package:com.ixo.tracker
UPDATE
if it is not working in 3.1 and above, is there any alternative to develop above.
Upvotes: 3
Views: 1929
Reputation: 93708
As a security fix, new versions of Android will not allow a BroadcastReceiver to receive BOOT_COMPLETE until it has been launched by the user- which requires there to be an activity that they launch. It's annoying, but you'll have to add an activity of some sort.
Upvotes: 2