Я создал приложение для блокировки экрана, которое запускается по SMS. У меня есть класс ListenSMS, который всегда прослушивает входящие SMS. Вот код:
for (SmsMessage message : messages) {
String tempMessage[] = message.getDisplayMessageBody().toString().split(" ");
//checking command dan password
if (tempMessage[0].toString().equalsIgnoreCase("andro-lock") && tempMessage[1].toString().equals(tempPassword.toString())) {
//Toast.makeText(ListenSMSservice.this, "Menjalankan command andro-lock", Toast.LENGTH_LONG).show();
openDatabase();
updateStatusL();
Intent myIntent = new Intent(ListenSMSservice.this,LockScreenForm.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplication().startActivity(myIntent);
}
else if (tempMessage[0].toString().equalsIgnoreCase("andro-unlock") && tempMessage[1].toString().equals(tempPassword.toString())) {
//Toast.makeText(ListenSMSservice.this, "Menjalankan command andro-unlock", Toast.LENGTH_LONG).show();
openDatabase();
updateStatusNL();
Intent myIntent = new Intent(ListenSMSservice.this,LockScreenForm.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Bundle myKillerBundle = new Bundle();
myKillerBundle.putString("kill","1");
myIntent.putExtras(myKillerBundle);
getApplication().startActivity(myIntent);
}
}
Если служба ListenSMS получила команду andro-lock
, она перейдет к lockscreen.java
и перейдет к lockscreen.java с намерением extra ( putExtra) kill
при получении команды andro-unclock
. Вот мой файл lockscreen.java:
public class LockScreenForm extends Activity implements OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.lockscreen);
Bundle extra = getIntent().getExtras();
if (extra == null) {
return;
}
//Toast.makeText(this, extra.getString("kill"), 1).show();
else if(this.getIntent().getExtras().getString("kill").equalsIgnoreCase("1")) {
try {
Toast.makeText(this, "extra accepted", 1).show();
finish();
} catch (Exception e) {
// TODO: handle exception
Toast.makeText(this, e.getMessage(), 1).show();
}
}
}
}
Я хочу закрыть свой файл locksreen.java, когда моя служба ListenSMS
получила команду «andro-unlock», поэтому я добавляю дополнительные намерения «убить» и проверяю это в lockscreen.java. Этот файл lockscreen.java может проверять дополнительное намерение и может отображать тост "дополнительно принято", но может закрыть активность экрана блокировки с помощью функции finish ().
На данный момент я предполагаю, что Intent.FLAG_ACTIVITY_NEW_TASK
дублирует блокировка экрана. Таким образом, будет создано действие с двойным экраном блокировки, а метод завершения закроет другой файл lockscreen.java, который был запущен Intent.FLAG_ACTIVITY_NEW_TASK
. Это только предположение. Я ошибаюсь? Поправьте меня, пожалуйста.
Кто-нибудь знает, как решить мою проблему? Я действительно хочу, чтобы команда "andro-unlock" могла закрыть активность экрана блокировки и работала над моим финальным проектом в колледже. Пожалуйста, помогите.