Android 设置间隔后使应用程序启动机场模式?
我在Android上制作应用程序有点困难。我找到了一些类来帮助制作,但我不知道如何实现 应用程序需要执行以下操作: 搜索网络信号,如果在设定的时间间隔(例如五分钟)后未找到任何信号,则启用飞行模式。 再过一段时间,飞行模式被禁用,应用程序再次搜索互联网信号。 在搜索这方面的信息时,我发现了三个可以工作的类,它们是可能禁用/启用飞行模式的设置,AlarmManager在论坛上推荐,在我说我找到了Timer类之后,以及PhoneStateListener来检测网络信号 我将AlarmManager设置为用户可以通过用户界面指定时间间隔,但我不知道如何判断时间间隔是否已过,也不知道如何正确使用PhoneStateListener 以下是我设置间隔的代码:Android 设置间隔后使应用程序启动机场模式?,android,networking,airplane,Android,Networking,Airplane,我在Android上制作应用程序有点困难。我找到了一些类来帮助制作,但我不知道如何实现 应用程序需要执行以下操作: 搜索网络信号,如果在设定的时间间隔(例如五分钟)后未找到任何信号,则启用飞行模式。 再过一段时间,飞行模式被禁用,应用程序再次搜索互联网信号。 在搜索这方面的信息时,我发现了三个可以工作的类,它们是可能禁用/启用飞行模式的设置,AlarmManager在论坛上推荐,在我说我找到了Timer类之后,以及PhoneStateListener来检测网络信号 我将AlarmManager设
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布局中进行的选择。我认为您需要AlarmManager再次启动应用程序。您可以在这里查看文档 但正如在开头所指出的,如果设备在等待时重新启动,应用程序将不会被触发 [编辑]
错过了您说过已经在尝试实现AlarmManager的部分。看看这个帖子和MarkMurphy发布的源代码 我之前已经将文档添加到书签中,但无论如何还是要感谢您的发布。但是,再次启动AlarmManager并不能改变这样一个事实,即我需要在操作发生之前检查设置的时间间隔是否已经过去,正如您所说的,在重新启动时,这可能不起作用,并且需要建立电话状态监听器,以便检测信号。在论坛上,我要求在上课程,我确定我也在考虑让它像EasyTether一样持续运行。