如何在Delphi中解析intent中的数据

时间:2017-09-13 10:59:24

标签: android delphi android-intent

我正在尝试从Intent获取数据。它作为包含一个元素的Float数组传递。我尝试了这段代码,但崩溃了:

procedure TMainScreen.BroadcastReceiver2Receive(Context: JContext; Intent: JIntent);
{$IFDEF ANDROID}
var
  Temp: String;
  Hr1: single;
  Bundle :Jbundle;
begin
  button2.Text:= 'triggered';
  if Intent.hasExtra(stringtojstring('DATA')) = true then
  begin
    bundle := intent.getExtras();
    button1.Text:= 'got data';
    hr1:= bundle.getFloatArray(stringtojstring('DATA'))[0];
    button2.Text:= floattostr(hr1);
  end;
{$ELSE}
begin
{$ENDIF}
end;

我确定我没有正确处理数组。我该怎么做?

1 个答案:

答案 0 :(得分:1)

您应该使用ansible -m command代替JIntent.getFloatArrayExtra()

但是,无论哪种方式,在访问数组元素之前,您需要检查返回的数组是否为JIntent.getExtras()。如果不是,您应该也检查数组长度是否实际> 0

尝试更像这样的事情:

nil