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!