0

Android/Java は初めてで、AddProximityAlert() をいじっています。以下のコードブロックがあり、エラーが発生し続けます。Eclipse が何を言っているのか、getBroadcast と registerReceiver で発生するエラーを解決する方法を誰かが説明してもらえますか?

SecondaryActivity.java ファイルには 2 つのブロードキャスト レシーバーがありますが、それが理由でしょうか?

セカンダリ アクティビティ.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 に対して未定義です

4

1 に答える 1

1

BroadcastReceiver を拡張しているため、以下を使用する必要があります。

PendingIntent.getBroadcast(context, 0, intent, 0)

context.registerReceiver()

Context クラスを参照します。

また、BroadcastReceiverはアクティビティではないSecondaryActivityため、名前を付けるのは少し混乱します。SecondaryActivity

于 2012-10-22T18:48:06.017 に答える