Любая помощь приветствуется.Брандмауэр и преференциальный флажок не работают вместе
У меня есть широковещательный приемник в манифесте, когда при андроиде: enabled = "true" получает трансляцию и запускает службу. И когда это андроид: enabled = "false" не получает трансляцию, и служба не запускается.
Это то, что можно было бы ожидать при использовании PackageManger, когда я попытаюсь использовать это с моей активностью в отношении предпочтений, служба получает все время в случае андроида: enabled = "true" или android: enabled = "false" услуга никогда не называется. В обоих случаях не имеет значения, установлен флажок или нет.
Я думаю, что проблема заключается в том, как сконфигурирована деятельность предпочтений, в том, что истинная/ложная логика, которую я пробовал, прикручена. Я не получаю ошибок, которые заставляют думать, что именно так построена Java. На самом деле мне хотелось бы помочь в решении этого вопроса . Заранее благодарим за любую помощь, которую вы могли бы предложить.
Здесь представлены предпочтения XML и предпочтения Java.
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference
android:key="CheckBox"
android:id="@+id/CheckBox1"
android:title=" StartUp"
android:summary="Change The CheckBox Status here, it will be saved in
Preference" />
</PreferenceScreen>
И ниже является Java
package com.collabera.labs.sai;
import java.util.Calendar;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.ComponentName;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
mport android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.view.View;
import android.widget.CheckBox;
public class ShowPreferences extends PreferenceActivity implements
OnSharedPreferenceChangeListener{
boolean CheckBox;
CheckBox cb;
PreferenceManager pm;
SharedPreferences sp;
Editor editor;
private String CHECKBOX;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.bootpreference);
cb = (CheckBox) findViewById(R.id.CheckBox1);
loadPref();}
private void loadPref() {
// TODO Auto-generated method stub
SharedPreferences sp =
PreferenceManager.getDefaultSharedPreferences(this);
sp.getBoolean("CHECKBOX", false);}
private void savePrefs(String key, boolean value) {
SharedPreferences sp =
PreferenceManager.getDefaultSharedPreferences(this);
Editor edit = sp.edit();
edit.putBoolean(CHECKBOX, true);
edit.commit();
}
public void onClick(View v) {
// TODO Auto-generated method stub
savePrefs("CHECKBOX", cb.isChecked());
if (cb.isChecked());
}
public void pendingIntent() {
// TODO Auto-generated method stub
}
public void onSharedPreferenceChanged(SharedPreferences
sharedPreferences,
String key, boolean cbValue) {
// TODO Auto-generated method stub
if(cbValue){
cb.setChecked(true);
Intent myIntent = new Intent(getBaseContext(),
BroadcastServiceReceiver.class);
PendingIntent pendingIntent
= PendingIntent.getBroadcast(getBaseContext(),
0, myIntent, 0);
AlarmManager alarmManager
= (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
long interval = 60 * 1000; //
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), interval, pendingIntent);
PackageManager pm = getPackageManager();
ComponentName compName =
new ComponentName(getApplicationContext(),
BroadcastServiceReceiver.class);
pm.setComponentEnabledSetting(
compName,
PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0);
}else{
cb.setChecked(false);
Intent myIntent = new Intent(getBaseContext(),
BroadcastServiceReceiver.class);
PendingIntent pendingIntent
= PendingIntent.getBroadcast(getBaseContext(),
0, myIntent, 0);
AlarmManager alarmManager
= (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
alarmManager.cancel(pendingIntent);
PackageManager pm = getPackageManager();
ComponentName compName =
new ComponentName(getApplicationContext(),
BroadcastServiceReceiver.class);
pm.setComponentEnabledSetting(
compName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);}
}
@Override
public void onSharedPreferenceChanged(SharedPreferences
sharedPreferences,
String key) {
// TODO Auto-generated method stub
savePrefs("CHECKBOX", cb.isChecked());
if (cb.isChecked());
}
}