java - Proximity Alert Intent 不放置或返回额外的东西

标签 java android android-intent gps broadcastreceiver

我正在做的是额外添加具有唯一 ID 的不同接近警报,但它不起作用 -

        for (int i = 0; i < latArray.size(); i++) 
    {   

        Bundle extra = new Bundle();
        extra.putInt("UID", i);
        Intent intent = new Intent(IntentToFire);  
        intent.putExtra("Blob", extra);
        PendingIntent proximityIntent = PendingIntent.getBroadcast(this,-1 , intent, 0);
        LocationManager locationManager = 

        Log.i("Picture:","Location img:"+GetLocation.imgArray.get(i));
        Log.i("Potatoo:", "Lat :"+latArray.get(i)+" Lng :"+lngArray.get(i));
        locationManager.addProximityAlert(Double.valueOf(latArray.get(i)), Double.valueOf(lngArray.get(i)), radius,expiration,proximityIntent);
    }

然后在广播接收器上我将这段代码 -

flag = intent.getBundleExtra("blob").getInt("UID");

每次我要打印标志时,我都会得到一个错误。一个想法?

最佳答案

尝试使用 FLAG_UPDATE_CURRENT:

PendingIntent.getBroadcast(this,-1 , intent, PendingIntent.FLAG_UPDATE_CURRENT);

我发现最简单的方法是在 Intent 上使用接近警报对数据 uri 中的数据进行编码包含在未决 Intent 中,例如:

geo:<lat>,<lon>?id=<your id>

虽然您可以使用自己的协议(protocol)部分(geo 由谷歌地图 AFAIK 使用)。对我来说没有缓存问题(似乎你得到了一个缓存的/旧的/错误的 PendingIntent)。

关于java - Proximity Alert Intent 不放置或返回额外的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10542235/

相关文章:

android - 真的没有得到 setResult 和 onActivityResult

java - 读取 JSON 响应

java - 为具有 "interchangeable"字段的对象实现哈希码

android - 生成 Ant 构建文件错误

android - 使用支持库时如何在 ListView 中提供 ContextMenu?

c# - 公共(public) bool 方法无法将类型 `bool' 隐式转换为 `void'

Android Intent 和回调

android - 从 android Intent.ACTION_SEND 中提取文件路径

java - 文件上传字段 Wicket 错误

java - 如何在单击 JButton 时清除 JFrame 中的所有组件值