0

シンプルなロケーショントラッカーを開発しようとしています。しかし、次のエラーが表示されます: The method abortBroadcast() is undefined for the type SMSReceiver. 私はそれを理解することができません。このエラーが発生している行はthis.abortBroadcast. これで私を助けてください。

コードは次のとおりです。

package com.example.whereareyou;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.BroadcastReceiver;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
public class SMSReceiver {
    LocationManager lm;
    LocationListener locationListener;
    String senderTel;

    public void onReceive(Context context, Intent intent)
    {
        Bundle bundle= intent.getExtras();
        SmsMessage[] msgs= null;
        String str="";
        if(bundle!=null)
        {
            senderTel="";
            Object[] pdus=(Object[]) bundle.get("pdus");
            msgs= new SmsMessage[pdus.length];
            for(int i=0; i<msgs.length;i++)
            {
                msgs[i]= SmsMessage.createFromPdu((byte[])pdus[i]);
                if(i==0)
                {
                    senderTel=msgs[i].getOriginatingAddress();
                }
                str+=msgs[i].getMessageBody().toString();
            }
            if(str.startsWith("where are you?"))
            {
                lm=(LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
                locationListener= new MyLocationListener();
                lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 1000, locationListener);
                this.abortBroadcast();
            }
        }
    }

    private class MyLocationListener implements LocationListener
    {

        @Override
        public void onLocationChanged(Location loc) 
        {
            if(loc!=null)
            {
                SmsManager sms=SmsManager.getDefault();
                sms.sendTextMessage(senderTel, null, "http://maps.google.com/maps?q=" + loc.getLatitude() + "," + loc.getLongitude(), null, null);
                lm.removeUpdates(locationListener);
            }

        }

        @Override
        public void onProviderDisabled(String arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProviderEnabled(String arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
            // TODO Auto-generated method stub

        }

    }


}
4

1 に答える 1

1

abortBroadcast()そのように使いたい場合BroadcastReceiverは、クラスSMSReceiverを拡張する必要がありBroadcastReceiverます。

public class SMSReceiver extends BroadcastReceiver {
于 2013-07-27T08:19:13.497 に答える