我在 Android 上制作应用程序时遇到了一些困难。我找到了一些课程来帮助制作,但我不知道如何实现。
该应用程序需要执行以下操作:
- 搜索网络信号,如果在设定的时间间隔(例如五分钟)后没有找到,则启用飞行模式。
- 又过了一段时间,飞行模式被禁用,应用程序再次搜索互联网信号。
在搜索这方面的信息时,我发现了三个可以工作的类,它们是 Settings(可能禁用/启用飞行模式)、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();
}
}
Toast 的东西只是为了检查用户输入是否正确,所以没有什么可以建议我开始按时检查。上面的类应该启用飞行模式。至于禁用它的类,它与上面的帖子足够相似,有点多余。
这两个类是通过启动其中一个类的主类访问的,具体取决于从 listView 布局中的选择。