0

Androidでアプリを作るのに少し苦労しています。作成に役立ついくつかのクラスを見つけましたが、実装方法がわかりません。

アプリは次のことを行う必要があります。

  1. ネットワーク信号を検索し、設定された時間間隔 (5 分など) が経過しても何も検出されない場合、機内モードが有効になります。
  2. さらに時間が経過すると、機内モードが無効になり、アプリは再びインターネット信号を検索します。

これに関する情報を検索すると、機能する可能性のある 3 つのクラスが見つかりました。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 の機能は、ユーザー入力が正しく行われたことを確認するだけなので、時間の確認を開始したことを示唆するものは何もありません。上記のクラスは、機内モードを有効にすることになっています。それを無効にするクラスに関しては、上記の投稿と十分に似ているため、少し冗長になります。

2 つのクラスは、listView レイアウトからの選択に応じて、いずれかのクラスを開始するメイン クラスを介してアクセスされます。

4

1 に答える 1