Problemas de BroadcastReceiver no Android 3.1 ou superior

Estou tentando atualizar dados de localização para um banco de dados da Web usandoBroadcastReceiver eService.

No entanto, estou tendo dificuldades para trabalhar com o Android 3.2 em um Galaxy Tab 7.0 Plus.

O mesmo aplicativo está funcionando muito bem em um Android 2.3.6 Galaxy Note, mas ele não roda no tablet. Na verdade, eu adiciono oRECEIVE_BOOT ação intencional para o meu receptor, mas nunca é instanciado, isto é, onReceive() nunca é chamado depois que a inicialização é concluída. Gostaria de saber se existem atualizações no sistema que causam essa ação.

Aqui estão minhas classes xml e receiver:

AndroidManifest.xml

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

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

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

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <receiver
        android:name=".BootUpReceiver"
        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>

    <service android:name=".MyService" >
    </service>
</application>

BootUpReceiver.java

public class BootUpReceiver extends BroadcastReceiver {

private static int INTERVAL = 1000*15;

@Override
public void onReceive(Context context, Intent intent) {     
    AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    PendingIntent pi = PendingIntent.getService(context, 0, new Intent(context, MyService.class), PendingIntent.FLAG_UPDATE_CURRENT);
    am.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), INTERVAL, pi);
}

}

Existe uma razão para o mesmo trecho de código funcionar em um sistema e não funcionar em outro?

Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion