В моето приложение имам чакащо намерение, че когато се излъчва, когато изискванията му са изпълнени, това се слуша от приемник за излъчване. След това този приемник за излъчване прави това, което искам да прави, но трябва да добавя екстри от една дейност към друга и използвам intent.putExtra
, за да направя това. `
В рамките на моя клас на приемник обаче методът getIntent()
е недефиниран. Как работи, когато го използвам с чакащи намерения, тъй като работи с всички други мои намерения.
Това е моят targetdistance.class: (настройва излъчване и чакащо намерение)
package com.example.drivetext;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.location.LocationManager;
import android.os.Bundle;
public class targetdistance extends Activity {
double finalc1;
double finalc2;
int finalsd;
String finalmessage;
String finalnumber;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.target);
LocationManager locationManager;
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
String provider = LocationManager.GPS_PROVIDER;
Intent intent = getIntent();
String contactNo;
contactNo = intent.getStringExtra("PhoneNumber");
finalnumber = contactNo;
String message;
message = intent.getStringExtra("TextMessage");
finalmessage = message;
double coord1 = 0;
coord1 = intent.getDoubleExtra("Coordinate1", coord1);
finalc1 = coord1;
double coord2 = 0;
coord2 = intent.getDoubleExtra("Coordinate2", coord2);
finalc2 = coord2;
int seldis = 0;
seldis = intent.getIntExtra("SelectedDistance", seldis);
finalsd = seldis;
LocationManager lm;
double lat = finalc1;
double long1 = finalc2; //Defining Latitude & Longitude
float radius=finalsd; //Defining Radius
lm=(LocationManager) getSystemService(LOCATION_SERVICE);
Intent i= new Intent();
i.putExtra("PhoneNumber", contactNo);
i.putExtra("TextMessage", message);
PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), -1, i, 0);
lm.addProximityAlert(lat, long1, radius, -1, pi);
}
}
Това е моят Receiver.class (приемникът за излъчване)
package com.example.drivetext;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.location.LocationManager;
import android.telephony.SmsManager;
public class Receiver extends BroadcastReceiver {
String finalnumber;
String finalmessage;
@Override
public void onReceive(Context arg0, Intent arg1) {
Intent intent4 = getIntent();
String contactNo;
contactNo = intent4.getStringExtra("PhoneNumber");
finalnumber = contactNo;
String message;
message = intent4.getStringExtra("TextMessage");
finalmessage = message;
String k=LocationManager.KEY_PROXIMITY_ENTERING;
// Key for determining whether user is leaving or entering
boolean state=arg1.getBooleanExtra(k, false);
//Gives whether the user is entering or leaving in boolean form
if(state){
// Call the Notification Service or anything else that you would like to do here
SmsManager smsManager = SmsManager.getDefault();
String sendTo = finalnumber;
String myMessage = finalmessage;
smsManager.sendTextMessage(sendTo, null, myMessage, null, null);
}
}
}
sendBroadcast(intent);
?? - person Raghunandan   schedule 13.05.2014