android - 如何使用意图通过蓝牙 BLE 发送双 [] 数组 - Android Studio (API 17)
问题描述
我正在与 Android Studio 合作一个项目,我正在使用 API 17 android 手机作为 terget。我想通过蓝牙分享一些参数,但我做不到。有人可以帮我吗?我正在使用意图,但现在我只能分享文字。这是我的 result.java 文件:
package com.google.android.gms.samples.vision.face.rPPG;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothManager;
import android.bluetooth.le.AdvertiseData;
import android.bluetooth.le.AdvertiseSettings;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.ParcelUuid;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
import com.jjoe64.graphview.GraphView;
import com.jjoe64.graphview.series.DataPoint;
import com.jjoe64.graphview.series.LineGraphSeries;
import com.jjoe64.graphview.series.PointsGraphSeries;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class RespirationResult extends AppCompatActivity {
private String Date;
int RR;
int il_risultato;
double [] plot_array;
int[] intArray;
DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
java.util.Date today = Calendar.getInstance().getTime();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_respiration_result);
Date = df.format(today);
TextView RRR = (TextView) this.findViewById(R.id.RRR);
ImageButton SRR = (ImageButton)this.findViewById(R.id.SendRR);
Bundle b = getIntent().getExtras();
double result = b.getDouble("key");
plot_array=b.getDoubleArray("array");
il_risultato=(int) Math.round(result);
RRR.setText(String.valueOf(il_risultato));
GraphView graph;
LineGraphSeries<DataPoint> series;
graph = (GraphView) findViewById(R.id.graphico);
series= new LineGraphSeries<>(data()); //initializing/defining series to get the data from the method 'data()'
graph.addSeries(series); //adding the series to the GraphView
graph.getViewport().setScalableY(true);
graph.getGridLabelRenderer().setGridColor(Color.DKGRAY);
graph.getGridLabelRenderer().setHorizontalLabelsColor(Color.DKGRAY);
graph.getGridLabelRenderer().setVerticalLabelsColor(Color.DKGRAY);
graph.getGridLabelRenderer().setHorizontalAxisTitle("time(sec)");
graph.getGridLabelRenderer().setVerticalAxisTitle("RR");
// set manual X bounds
graph.getViewport().setXAxisBoundsManual(true);
graph.getViewport().setMinX(0.5);
graph.getViewport().setMaxX(100);
SRR.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.send_to)));
}
});
}
public DataPoint[] data(){
DataPoint[] values = new DataPoint[plot_array.length]; //creating an object of type DataPoint[] of size 'n'
for(int i=0;i<plot_array.length;i++){
DataPoint v = new DataPoint(i,plot_array[i]);
values[i] = v;
}
return values;
}
@Override
public void onBackPressed() {
Intent i = new Intent(RespirationResult.this, SplashScreen.class);
startActivity(i);
finish();
super.onBackPressed();
}
}
解决方案
您可以putSerializable()
用于数组。
所以它将是:
Bundle bundle = new Bundle();
bundle.putSerializable("KEY", plot_array);
sentIntent.putExtras(bundle);
推荐阅读
- python - 将多维数组转换为 2d 和后续索引
- python - 从 pybind11 包装特征返回数组列表或元组
- javascript - 我遇到了一个问题,包括条件中的图像位置
- c# - 如何使用 ContextMenu 访问 DataGrid 的单元格值?
- django - 如何强制网络浏览器通过 django 跟踪用户位置?
- git - 如何在不更改项目根目录的情况下使用 git filter-branch?
- android - 构建失败原因:java.lang.OutOfMemoryError: GC 开销限制超出
- javascript - 函数回调后变量不反映其值的变化
- string - powershell 将变量导出到 txt 文件
- javascript - 如何将相机的位置合并到该算法中以计算精灵在屏幕上的位置?