我正在尝试使用Google fit api从我的Android wear os手表中获取心率。我的手表和android设备都是配对的。
我尝试了两种方法:
1) 从Android应用程序连接到google fit并扫描数据源。但它只能检测android设备上的步进传感器,没有成对的手表传感器。
mFitnessClient = new GoogleApiClient.Builder(this)
.addApi(Fitness.SENSORS_API)
.addScope(Fitness.SCOPE_BODY_READ)
.addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
@Override
public void onConnected(Bundle bundle) {
Log.d(TAG, "Fitness client connected");
}
@Override
public void onConnectionSuspended(int i) {
Log.d(TAG, "Fitness client suspended");
}
})
.addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(ConnectionResult result) {
Log.d(TAG, "Fitness Connection failed");
}
})
.build();
mFitnessClient.connect();
DataSourcesRequest dataSourceRequest = new DataSourcesRequest.Builder()
.setDataTypes(DataType.TYPE_HEART_RATE_BPM)
.setDataSourceTypes(DataSource.TYPE_RAW)
.build();
ResultCallback < DataSourcesResult > dataSourcesResultCallback = new ResultCallback < DataSourcesResult > () {
@Override
public void onResult(DataSourcesResult dataSourcesResult) {
for (DataSource dataSource: dataSourcesResult.getDataSources()) {
}
}
};
Fitness.SensorsApi.findDataSources(mFitnessClient, dataSourceRequest)
.setResultCallback(dataSourcesResultCallback);
2) 作为一款耐磨操作系统应用程序直接从手表中读取。但如果我定义健康。SENSORS\u API,我倾向于获取onConnectionFailed,错误代码为5(无效的\u帐户)。
mFitnessClient = new GoogleApiClient.Builder(this)
.addApi(Fitness.SENSORS_API)
.addScope(Fitness.SCOPE_BODY_READ)
.addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
@Override
public void onConnected(Bundle bundle) {
Log.d(LOG_TAG, "Connected to fitness API");
}
@Override
public void onConnectionSuspended(int i) {
}
})
.addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
Log.d(LOG_TAG, "Connection failed: " + connectionResult.getErrorCode());
}
})
.build();
mFitnessClient.connect();
1) 从Android应用程序连接到google fit并扫描数据源。但它只能检测android设备上的步进传感器,没有成对的手表传感器。
您可以使用RecordingClient获取心率
Android 10为需要检测用户步数或分类用户身体活动的应用引入了android.permission.ACTIVITY_RECOGNITION运行时权限。
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACTIVITY_RECOGNITION)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
PERMISSIONS,
PERMISSIONS_REQUEST_ACTIVITY_RECOGNITION);
}
} else {
fintessConnection();
}
public void fintessConnection() {
FitnessOptions fitnessOptions = FitnessOptions.builder()
.addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_READ)
.build();
if (!GoogleSignIn.hasPermissions(GoogleSignIn.getLastSignedInAccount(this), fitnessOptions)) {
GoogleSignIn.requestPermissions(
this, // your activity
GOOGLE_FIT_PERMISSIONS_REQUEST_CODE,
GoogleSignIn.getLastSignedInAccount(this),
fitnessOptions);
} else {
accessGoogleFit();
}
}
订阅心率/BPM:
Fitness.getRecordingClient(this, GoogleSignIn.getLastSignedInAccount(this))
.subscribe(DataType.TYPE_HEART_RATE_BPM)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.i(TAG, "Successfully subscribed!");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.i(TAG, "There was a problem subscribing.");
}
});
正在检索BPM:
DataReadRequest readRequest = new DataReadRequest.Builder()
.read(DataType.TYPE_HEART_RATE_BPM)
.setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
.bucketByTime(365, TimeUnit.DAYS)
.build();
Fitness.getHistoryClient(this, GoogleSignIn.getLastSignedInAccount(this))
.readData(readRequest)
.addOnSuccessListener(new OnSuccessListener<DataReadResponse>() {
@Override
public void onSuccess(DataReadResponse dataReadResponse) {
Log.d(TAG, "onSuccess()");
for (Bucket bucket : dataReadResponse.getBuckets()) {
Log.e("History", "Data returned for Data type: " + bucket.getDataSets());
List<DataSet> dataSets = bucket.getDataSets();
for (DataSet dataSet : dataSets) {
showDataSet(dataSet);
}
}
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e(TAG, "onFailure()", e);
}
})
.addOnCompleteListener(new OnCompleteListener<DataReadResponse>() {
@Override
public void onComplete(@NonNull Task<DataReadResponse> task) {
Log.d(TAG, "onComplete()");
}
});
2) 作为一款耐磨操作系统应用程序直接从手表中读取。但如果我定义健康。SENSORS\u API,我倾向于获取onConnectionFailed,错误代码为5(无效的\u帐户)。
在您可以从Google Fit API调用方法之前,您必须连接到以下一个或多个API客户端,它们是Google Play服务的一部分:
首先从手持设备连接到上述API之一,然后可以在Watch中调用API。这里有详细的答案。
我一直在尝试开发一个android应用程序,可以从CIFS/SMB协议中提取信息。我尝试过JCIFS,但由于我的eclipse应用程序无法读取包(即使在我使用Javadoc读取包之后)而不断出现错误,我最后的办法就是寻求帮助。因此,有人能提供如何做到这一点的煽动/信息吗? 我试过这个:复制所有文件从服务器到Android设备 我试过这个:http://jcifs.samba.org/ 我试过这个:
这基本上意味着我没有读取该文件的权限。
在我的dropwizard rest应用程序中,我的指标配置是这样的,(hello-world.yml) 这是一个SLF4J记者,我把它放在了我的YAML配置文件中。当我想获取这个值并在我的应用程序文件中使用它时。我看到的唯一选择是将此作为< code >地图阅读 此问题与graphite服务器配置的Dropwizard Yaml相同。但是这个问题还是没有答案,所以我创造了一个新问题来试试运气。
我有一个Jenkins的工作,在那里我执行了一个Groovy脚本。从那个Groovy脚本中,我向另一个应用程序发出POST请求。我的Jenkins服务器和应用程序在不同的机器上。我需要从应用程序的代码中访问Jenkins环境变量。这可能吗? 我尝试使用System.getenv("ENVIRONMUT-VARIABLE-NAME")方法检索环境变量,但返回的结果为null。
问题内容: 我可以在android中居中对齐应用程序名称吗 默认情况下,应用程序名称在左侧对齐。 那么如何使其居中对齐 问题答案: 您将在xml中尝试
我正在编写一个小型 JavaFx 应用程序,其中主类包含一个可观察的用户列表。这些用户具有可观察的帐户列表,并且这些帐户具有可观察的交易列表等等... 我想保存并稍后读取应用程序的数据以/构建文件。 我已经尝试通过在我的所有类中实现可序列化接口来保存它,但显然你不能序列化一个可观察列表。 我还尝试使用 Gson 将其保存在 Json 文件中,或者使用 JAXB 将其另存为 XML 文件,但是它们都