我正在開發應用程序更衣室應用程序。如果在kitkat版本設備應用程序鎖定中安裝了這個 應用程序,並且它的 工作正常。在棉花糖|(6.0)版本設備最初 應用程序正在工作,如果我們重新啓動設備應用程序鎖定不是 工作,鎖定的應用程序打開時不詢問任何密碼。 如果我們只是進入應用程序(應用程序鎖定應用程序),並退出應用程序其 工作完美。這次它要求密碼。重新啓動設備後,我的儲物櫃應用程序無法在Android棉花糖設備上工作
public class StartupServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
if (AppLockerPreference.getInstance(context).isAutoStart()){
if (AppLockerPreference.getInstance(context).isServiceEnabled()){
context.startService(new Intent(context, DetectorService.class));
}else{
AppLockerPreference.getInstance(context).saveServiceEnabled(false);
}
}
return;
}else if (AppLockerPreference.getInstance(context).isServiceEnabled()){
context.startService(new Intent(context, DetectorService.class));
}
}
}
public class AppLockerPreference implements OnSharedPreferenceChangeListener {
Context mContext;
public boolean isAutoStart() {
Log.d("AMK","AppLockerPreference1--->"+mApplicationList.length);
return mAutoStart;
}
public boolean isServiceEnabled() {
Log.d("AMK","AppLockerPreference2--->"+mApplicationList.length);
return mServiceEnabled;
}
public void saveServiceEnabled(boolean serviceEnabled) {
mServiceEnabled = serviceEnabled;
mPref.edit().putBoolean(PREF_SERVICE_ENABLED, mServiceEnabled);
}
public String[] getApplicationList() {
Log.d("AMK","AppLockerPreference3--->"+mApplicationList.length);
return mApplicationList;
}
public void saveApplicationList(String[] applicationList) {
mApplicationList = applicationList;
String combined = "";
for (int i=0; i<mApplicationList.length; i++){
combined = combined + mApplicationList[i] + ";";
}
mPref.edit().putString(PREF_APPLICATION_LIST, combined).commit();
}
private static final String PREF_SERVICE_ENABLED = "service_enabled";
private static final String PREF_APPLICATION_LIST = "application_list";
private static final String PREF_AUTO_START = "start_service_after_boot";
private static final String PREF_PASSWORD = "password";
/**
* Section for singleton pattern
*/
private SharedPreferences mPref;
private AppLockerPreference(Context context) {
mPref = PreferenceManager.getDefaultSharedPreferences(context);
mPref.registerOnSharedPreferenceChangeListener(this);
reloadPreferences();
}
private void reloadPreferences() {
mServiceEnabled = mPref.getBoolean(PREF_SERVICE_ENABLED, true);
mApplicationList = mPref.getString(PREF_APPLICATION_LIST, "").split(";");
Log.d("AMK","selectd apps--->"+mApplicationList);
mAutoStart = mPref.getBoolean(PREF_AUTO_START, true);
mPassword = mPref.getString(PREF_PASSWORD, "2468");
if (mPref.getBoolean("relock_policy", true)){
try{
mRelockTimeout = Integer.parseInt(mPref.getString("relock_timeout", "-1"));
}catch(Exception e){
mRelockTimeout = -1;
}
}else{
mRelockTimeout = -1;
}
}
private static AppLockerPreference mInstance;
public static AppLockerPreference getInstance(Context context){
return mInstance == null ?
(mInstance = new AppLockerPreference(context)) :
mInstance;
}
private boolean mServiceEnabled, mAutoStart;
private String[] mApplicationList;
private String mPassword;
private int mRelockTimeout;
public int getRelockTimeout(){
return mRelockTimeout;
}
public String getPassword() {
return mPassword;
}
public void savePassword(String password) {
mPassword = password;
mPref.edit().putString(PREF_PASSWORD, password);
}
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
reloadPreferences();
}
}
你能幫我嗎。
你有''<使用許可權的android: name =「android.permission.BOOT_COMPLETED」/> ''在你的清單文件中? – Grisgram
是的,我有這個權限。 – Narendra
給我們您的清單 –