0

ラジオ局を再生するアプリがあり、アラームが鳴ったときにラジオ局を再生するように目覚まし時計を統合したいと考えています。私はアラームマネージャーを調べてきましたが、これが最善の方法のようです。

私のアプリには、ダイアログを呼び出してアラームを設定するアラームボタンがあります。アラームが設定されている場合、指定した時間にアプリを起動する必要があります。ただし、コードのこのセクションに問題があります。

Intent intent = new Intent("some Context", null, null, MainActivity.class);
PendingIntent pendInt = PendingIntent.getBroadcast("some Context", 0, intent, 0);
AlarmManager alarmService = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmService.set(AlarmManager.RTC_WAKEUP, timeToSound, pendInt);

具体的には、何contextが必要かについて混乱しています。多くの例を見てきましたが、実際に詳細に説明しているものはありません。誰かがこの問題に光を当てることができれば幸いです。
役立つかもしれないその他のコード...

@Override
    protected Dialog onCreateDialog(int id) {
        Dialog d = null;
        switch (id) {
        case LINEUP_DIALOG_ID:
            d = new LineupDialog(this);
            d.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
            WindowManager.LayoutParams lp = d.getWindow().getAttributes();
            lp.dimAmount = 0.5f;
            d.getWindow().setAttributes(lp);
            break;

これは私のダイアログを呼び出します^

private View.OnClickListener lineupAction = new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            //showAlarm();
            showDialog(LINEUP_DIALOG_ID);
        }
    };

これらは両方とも私の mainActivity にあります。
次に、レイアウトを保持するxmlファイルがあります(必要に応じて提供できます..ユーザーが時間とチェックボックスを選択して保存できるようにするだけです)
保存ボタンにはonclickListenerがあります--- NavDialogを拡張するLineupDialogクラスにあります、そして私のnavdialogはDialogを拡張するだけです。

4

2 に答える 2

0

新しいクラスも作成する必要があることがわかりました...コンテキストの一部は変数を作成することで機能しました。他の誰かがそれを必要とする場合に備えて、作成しなければならなかった新しいサービスのコードを次に示します。

//imports here
public class AlarmService extends Service{

    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        //System.out.println("hello im in the alarmService Binder");

        return null;
    }

    @Override
    public void onStart(Intent intent, int startid) {
        Intent mainAct = new Intent("android.intent.action.MAIN");
        //System.out.println("hello im in the alarmService onStart " + mainAct);
        mainAct.setClass(AlarmService.this, MainActivity.class);
        mainAct.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        mainAct.putExtra("alarm","true");
        startActivity(mainAct);
    }

    @Override
    public void onCreate() {
        //System.out.println("hello im in the alarmService onCreate");
        //code to execute when the service is first created
    }

}

次に、マニフェストに追加することを忘れないでください

于 2011-03-08T16:39:08.273 に答える
0

カイル、

これはパッケージ Context である必要がありますが、これはコード内のどこに and を作成するかによって異なる場合がありIntentますPendingIntent。またはを試しましたthisgetApplicationContext()

于 2011-03-04T18:23:01.473 に答える