Попытка выключить будильник, если я получаю SMS-сообщение! Не могу построить следующий код :( - PullRequest
0 голосов
/ 19 февраля 2011
package com.smith.johnathan.phonefinder;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.util.Calendar;



import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.gsm.SmsMessage;
import android.util.Log;
import android.widget.Toast;


public class PhoneFinder extends android.content.BroadcastReceiver {

    private static final String LOG_TAG = "SMSReceiver";
    public static final int NOTIFICATION_ID_RECEIVED = 0x1221;
    static final String ACTION = "android.provider.Telephony.SMS_RECEIVED";

    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(PhoneFinder.ACTION)) {
            StringBuilder sb = new StringBuilder();
            Bundle bundle = intent.getExtras();
            if (bundle != null) {
                Object[] pdus = (Object[]) bundle.get("pdus");
                for (Object pdu : pdus) {
                    SmsMessage messages = SmsMessage
                            .createFromPdu((byte[]) pdu);
                    sb.append("Received SMS Message\nFrom: ");
                    sb.append(messages.getDisplayOriginatingAddress());
                    sb.append("\n----Message----\n");
                    sb.append(messages.getDisplayMessageBody());
                }
            }
            Log.i(PhoneFinder.LOG_TAG, "[SMSApp] onReceiveIntent: " + sb);
            Toast.makeText(context, sb.toString(), Toast.LENGTH_LONG).show();
        }
    }

    private void beep()
    {
        Intent intent = new Intent(PhoneFinder.class, AlarmService.class);
        startActivity(intent);

    };
}

Ответы [ 2 ]

0 голосов
/ 20 февраля 2011

Созданный вами метод beep() никогда не вызывается (поэтому, похоже, он не нужен), однако, если по какой-то причине он вам нужен, вам нужно будет передать ему параметр, чтобы ваша деятельность начала нормально работать.,Я бы порекомендовал перенести эти строки кода в onReceive(), давая вам следующее:

public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(PhoneFinder.ACTION)) {
        StringBuilder sb = new StringBuilder();
        Bundle bundle = intent.getExtras();
        if (bundle != null) {
            Object[] pdus = (Object[]) bundle.get("pdus");
            for (Object pdu : pdus) {
                SmsMessage messages = SmsMessage
                        .createFromPdu((byte[]) pdu);
                sb.append("Received SMS Message\nFrom: ");
                sb.append(messages.getDisplayOriginatingAddress());
                sb.append("\n----Message----\n");
                sb.append(messages.getDisplayMessageBody());
            }
        }
        Log.i(PhoneFinder.LOG_TAG, "[SMSApp] onReceiveIntent: " + sb);
        Toast.makeText(context, sb.toString(), Toast.LENGTH_LONG).show();

        Intent startIntent = new Intent(context, AlarmService.class);
        startActivity(startIntent);
    }
}

Я переименовал ваше намерение, чтобы оно не совпадало с именем передаваемого параметра. Вы также должныубедитесь, что каждое действие, которое вы используете в своем приложении, определено в AndroidManifest;Ваше приложение будет зависать при попытке запустить новое действие, которое вы не определили с помощью тега <activity>.

Если при сборке или во время выполнения возникают дальнейшие ошибки, пожалуйста, опубликуйте выходные данные явно.1010 * Я настоятельно рекомендую прочитать этот документ SDK .

Приветствия.

0 голосов
/ 19 февраля 2011

Где именно в onReceive () вы вызвали эту функцию звукового сигнала?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...