Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 设置间隔后使应用程序启动机场模式?_Android_Networking_Airplane - Fatal编程技术网

Android 设置间隔后使应用程序启动机场模式?

Android 设置间隔后使应用程序启动机场模式?,android,networking,airplane,Android,Networking,Airplane,我在Android上制作应用程序有点困难。我找到了一些类来帮助制作,但我不知道如何实现 应用程序需要执行以下操作: 搜索网络信号,如果在设定的时间间隔(例如五分钟)后未找到任何信号,则启用飞行模式。 再过一段时间,飞行模式被禁用,应用程序再次搜索互联网信号。 在搜索这方面的信息时,我发现了三个可以工作的类,它们是可能禁用/启用飞行模式的设置,AlarmManager在论坛上推荐,在我说我找到了Timer类之后,以及PhoneStateListener来检测网络信号 我将AlarmManager设

我在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();
   }
}

Toast的功能只是检查用户输入是否正确,所以没有任何东西可以说明我已经开始按时检查了。上面的类应该启用飞行模式。至于禁用它的类,它与上面的发布非常相似,有点多余


这两个类通过启动其中一个类的主类进行访问,具体取决于从listView布局中进行的选择。

我认为您需要AlarmManager再次启动应用程序。您可以在这里查看文档

但正如在开头所指出的,如果设备在等待时重新启动,应用程序将不会被触发

[编辑]


错过了您说过已经在尝试实现AlarmManager的部分。看看这个帖子和MarkMurphy发布的源代码

我之前已经将文档添加到书签中,但无论如何还是要感谢您的发布。但是,再次启动AlarmManager并不能改变这样一个事实,即我需要在操作发生之前检查设置的时间间隔是否已经过去,正如您所说的,在重新启动时,这可能不起作用,并且需要建立电话状态监听器,以便检测信号。在论坛上,我要求在上课程,我确定我也在考虑让它像EasyTether一样持续运行。