У меня возникли сложности с созданием приложения для Android.Я нашел несколько классов, чтобы помочь с созданием, но я не могу понять, как реализовать вещи.
Приложение должно сделать следующее:
- поиск сетисигналы и, если они не были обнаружены через заданный интервал времени (например, пять минут), включается режим полета.
- через другой интервал времени режим полета отключается, и приложение снова выполняет поиск интернет-сигналов.
При поиске информации по этому вопросу я нашел три класса, которые могли бы работать: «Настройки» (возможно, чтобы отключить / включить режим «В самолете»), AlarmManager (рекомендуется на форуме, после того, как я сказал, что нашел класс Timer) и PhoneStateListener (для обнаружения сетевых сигналов)
Я настроил AlarmManager, где пользователи могут указывать интервалы через пользовательский интерфейс, но я не знаю, как определить, истекли ли временные интервалы или как правильно использоватьPhoneStateListener для этого материала.
Ниже приведен код для установки интервалов:
package com.android.nman;
import android.app.*;
import android.os.*;
import android.widget.*; // import for ArrayAdapter
import android.view.*; // import for views
import android.widget.AdapterView.*; // import for OnItemClickListener
public class nmanAir extends Activity
{
private PendingIntent aSender;
EditText time;
Button set;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
time = (EditText)findViewById(R.id.time);
set = (Button)findViewById(R.id.set);
}
public void limitAction(View v)
{
// get current time
long now = SystemClock.elapsedRealtime();
String interval = time.getText().toString();
int min = Integer.parseInt(interval);
// schedule alarm
AlarmManager air = (AlarmManager)getSystemService(ALARM_SERVICE);
air.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, now, min*60000, aSender);
// send message
Toast.makeText(nmanAir.this, "Airplane check set to: " + min + " minutes", Toast.LENGTH_LONG).show();
}
}
Тост - просто проверить, правильно ли прошел пользовательский ввод, так что нечего даже предположить, что я начал проверять время.Предполагается, что вышеприведенный класс включает режим полета.Что касается класса, который его отключает, то это достаточно похоже на вышеприведенную запись, которая будет немного избыточной.
Доступ к двум классам осуществляется через основной класс, который запускает один из классов, в зависимости от выбора измакет listView.