我正在尝试从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;
我确定我没有正确处理数组。我该怎么做?
答案 0 :(得分:1)
您应该使用ansible -m command
代替JIntent.getFloatArrayExtra()
。
但是,无论哪种方式,在访问数组元素之前,您需要检查返回的数组是否为JIntent.getExtras()
。如果不是,您应该也检查数组长度是否实际> 0
尝试更像这样的事情:
nil