Android / Java新手,我正在使用AddProximityAlert()。我在下面有以下代码块,并且不断出现错误。有人可以解释一下Eclipse在说什么,以及如何解决我为getBroadcast和registerReceiver所获得的错误?
在SecondaryActivity.java文件中,我有2个广播接收器,这可能就是这个原因吗?
SecondaryActivity.java:
public class SecondaryActivity extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
.
.
.
lm = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double latitude = location.getLatitude();
double longitude = location.getLongitude();
float radius = 100f;
long expiration = -1;
final String PROX_ALERT_INTENT = "com.example.test";
Intent intent = new Intent(PROX_ALERT_INTENT);
PendingIntent proximityIntent = PendingIntent.**getBroadcast**(this, 0, intent, 0);
lm.addProximityAlert(latitude, longitude, radius, expiration, proximityIntent);
IntentFilter filter = new IntentFilter(PROX_ALERT_INTENT);
**registerReceiver**(new ProximityIntentReceiver(), filter);
.
.
.
private class ProximityIntentReceiver extends BroadcastReceiver {
...
getBroadcast :PendingIntent类型中的方法getBroadcast(Context,int,Intent,int)不适用于参数(SecondaryActivity,int,Intent,int)
registerReceiver :方法registerReceiver(SecondaryActivity.ProximityIntentReceiver,IntentFilter)未定义类型SecondaryActivity
答案 0 :(得分:1)
因为您正在扩展BroadcastReceiver,所以需要使用:
PendingIntent.getBroadcast(context, 0, intent, 0)
和
context.registerReceiver()
引用Context类。
同样命名BroadcastReceiver SecondaryActivity
有点令人困惑,因为SecondaryActivity
不是活动。