1

私は現在、興味のあるポイントが組み込まれた地図アプリに取り組んでいます。これらのポイントは、近接アラート トリガーによってユーザーに通知されることになっています。これが私が使用している addproximityAlert() コードです

loc.addProximityAlert(lat, longe, radius, -1, PendingIntent.getActivity(
            c, 0, new Intent().putExtra(loc_name, loc_name), flag));

アイデアは、アラートが発生すると、アラートダイアログがポップアップし、サイトに関する短い宣伝文句が表示され、アラートを閉じるか、詳細情報を取得する (WebView を使用する) オプションが表示されます。

これまでのところ、実行時またはコンパイル時のエラーは発生していませんが、各サイトにアクセスしても何も起こりません。

何も起こらない理由についての私の理論は、どちらかです。

1) PendingIntent を正しく使用していない、または

2) BroadcastReceiver を正しく設定していない

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

<receiver android:name=".ProxyAlertReceiver" >
        <intent-filter>
            <action android:name="entering" />
        </intent-filter>
    </receiver>

この問題を修正するための現在の計画は、PendingIntent を変更して、このような新しい Intent を使用することです。

...new Intent(myContext, ProxyAlertReceiver.class)...

結果が得られるかどうかを確認します。

私の問題に関する意見やアドバイスをいただければ幸いです。

4

3 に答える 3

3

PendingIntent.getBroadcast(...) を試しましたか?

Intent locationReachedIntent = new Intent("entering");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 1234, 
    locationReachedIntent, 0);

locationManager.addProximityAlert(longitude, latitude, radius, -1, pendingIntent);

上記のコードがアプリケーションで動作しています。

于 2012-06-09T16:46:21.363 に答える
1

これを使って

Intent locationIntent = new Intent();
Bundle extras= new Bundle();
extras.putString("loc_name",loc_name);
locationIntent.putExtras(extras);
PendingIntent pendingIntent= new PendingIntent.getActivity(this,0,locationIntent,0);
loc.addProximityAlert(lat, longe, radius, -1, pendingIntent, flag));

あなたの loc_name は文字列だと思います。これは機能します。

于 2012-08-06T17:05:48.367 に答える