Problemy z transmisją w Androidzie 3.1+

Próbuję zaktualizować dane lokalizacji do internetowej bazy danych za pomocąBroadcastReceiver iService.

Mam jednak trudności z pracą z systemem Android 3.2 na Galaxy Tab 7.0 Plus.

Ta sama aplikacja działa bardzo dobrze na Androida 2.3.6 Galaxy Note, ale nie działa na tablecie. W rzeczywistości dodajęRECEIVE_BOOT zamierzone działanie na mój odbiornik, ale nigdy nie zostanie utworzone wystąpienie, czyli onReceive() nigdy nie zostanie wywołany po zakończeniu rozruchu. Zastanawiam się, czy są jakieś aktualizacje systemu, które powodują tę akcję.

Oto moje klasy xml i odbiornika:

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);
}

}

Czy istnieje powód, dla którego ten sam fragment kodu działa w jednym systemie i nie działa na innym?

Dziękuję Ci!

questionAnswers(2)

yourAnswerToTheQuestion