Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在注销OnDataPointListener时,task.getResult()返回false /** *为所有必需的数据类型注册适应度侦听器 */ 私有void registerFitnessListeners(){ mStepCountListener= 新的OnDataPointListener(){ @凌驾 公共无效数据点(数据点数据点){ for(字段:dataPoint.getDataType().getFields()){ int-stepDelta=dataPoint.getValue(field).asInt(); mSteps+=阶跃增量; stepCountTextView.setText( 检测到的数据点字段:“+field.getName() +“\n检测到的数据点值:”+mSteps); } } }; Fitness.getSensorsClient(mContext、mGoogleSignInAccount) .添加( 新建SensorRequest.Builder() .setDataType(数据类型.TYPE\u步骤\u计数\u增量) .设置采样率(1,时间单位。秒) .setMaxDeliveryLatency(3,时间单位为秒) .SetFastEstate(1,时间单位为秒) .build(), mStepCountListener) .addOnCompleteListener( 新的OnCompleteListener(){ @凌驾 未完成的公共void(@NonNull任务){ if(task.issusccessful()){ Log.d(标记“Listener registered”); }否则{ Log.e(标记“侦听器未注册”,task.getException()); } } }); } /** *使用Sensors API注销侦听器。 */ 私有void unregisterFitnessListeners(){ Fitness.getSensorsClient(mContext、mGoogleSignInAccount) .remove(mStepCountListener) .addOnCompleteListener(新的OnCompleteListener(){ @凌驾 未完成的公共void(@NonNull任务){ if(task.issusccessful()&&task.getResult()){ Log.d(标记“Listener已删除”); }否则{ Log.d(标记“未删除侦听器”); } } }); }_Java_Android_Google Fit Sdk - Fatal编程技术网

Java 在注销OnDataPointListener时,task.getResult()返回false /** *为所有必需的数据类型注册适应度侦听器 */ 私有void registerFitnessListeners(){ mStepCountListener= 新的OnDataPointListener(){ @凌驾 公共无效数据点(数据点数据点){ for(字段:dataPoint.getDataType().getFields()){ int-stepDelta=dataPoint.getValue(field).asInt(); mSteps+=阶跃增量; stepCountTextView.setText( 检测到的数据点字段:“+field.getName() +“\n检测到的数据点值:”+mSteps); } } }; Fitness.getSensorsClient(mContext、mGoogleSignInAccount) .添加( 新建SensorRequest.Builder() .setDataType(数据类型.TYPE\u步骤\u计数\u增量) .设置采样率(1,时间单位。秒) .setMaxDeliveryLatency(3,时间单位为秒) .SetFastEstate(1,时间单位为秒) .build(), mStepCountListener) .addOnCompleteListener( 新的OnCompleteListener(){ @凌驾 未完成的公共void(@NonNull任务){ if(task.issusccessful()){ Log.d(标记“Listener registered”); }否则{ Log.e(标记“侦听器未注册”,task.getException()); } } }); } /** *使用Sensors API注销侦听器。 */ 私有void unregisterFitnessListeners(){ Fitness.getSensorsClient(mContext、mGoogleSignInAccount) .remove(mStepCountListener) .addOnCompleteListener(新的OnCompleteListener(){ @凌驾 未完成的公共void(@NonNull任务){ if(task.issusccessful()&&task.getResult()){ Log.d(标记“Listener已删除”); }否则{ Log.d(标记“未删除侦听器”); } } }); }

Java 在注销OnDataPointListener时,task.getResult()返回false /** *为所有必需的数据类型注册适应度侦听器 */ 私有void registerFitnessListeners(){ mStepCountListener= 新的OnDataPointListener(){ @凌驾 公共无效数据点(数据点数据点){ for(字段:dataPoint.getDataType().getFields()){ int-stepDelta=dataPoint.getValue(field).asInt(); mSteps+=阶跃增量; stepCountTextView.setText( 检测到的数据点字段:“+field.getName() +“\n检测到的数据点值:”+mSteps); } } }; Fitness.getSensorsClient(mContext、mGoogleSignInAccount) .添加( 新建SensorRequest.Builder() .setDataType(数据类型.TYPE\u步骤\u计数\u增量) .设置采样率(1,时间单位。秒) .setMaxDeliveryLatency(3,时间单位为秒) .SetFastEstate(1,时间单位为秒) .build(), mStepCountListener) .addOnCompleteListener( 新的OnCompleteListener(){ @凌驾 未完成的公共void(@NonNull任务){ if(task.issusccessful()){ Log.d(标记“Listener registered”); }否则{ Log.e(标记“侦听器未注册”,task.getException()); } } }); } /** *使用Sensors API注销侦听器。 */ 私有void unregisterFitnessListeners(){ Fitness.getSensorsClient(mContext、mGoogleSignInAccount) .remove(mStepCountListener) .addOnCompleteListener(新的OnCompleteListener(){ @凌驾 未完成的公共void(@NonNull任务){ if(task.issusccessful()&&task.getResult()){ Log.d(标记“Listener已删除”); }否则{ Log.d(标记“未删除侦听器”); } } }); },java,android,google-fit-sdk,Java,Android,Google Fit Sdk,当我试图注销OnDataPointListener以计算步数时,我的日志猫总是说listener未被删除。我知道task.getResult()总是返回false。为什么会这样??我做错什么了吗?如何删除侦听器 编辑:我在谷歌的问题跟踪器上创建了一个问题。您可以启动它,以便快速修复它。这是链接 我发现这个bug只出现在最新版本的google fit sdk中。旧版本工作正常。因此,将版本更改为下面的版本起到了作用:“com.google.android.gms:play services fit

当我试图注销OnDataPointListener以计算步数时,我的日志猫总是说listener未被删除。我知道task.getResult()总是返回false。为什么会这样??我做错什么了吗?如何删除侦听器

编辑:我在谷歌的问题跟踪器上创建了一个问题。您可以启动它,以便快速修复它。这是链接


我发现这个bug只出现在最新版本的google fit sdk中。旧版本工作正常。因此,将版本更改为下面的版本起到了作用:“com.google.android.gms:play services fitness:12.0.1”

即使我也面临类似的问题,但后来我尝试了绕过
传感器sapi的方法

/**
 *  Register fitness listeners for all the required data types
 */
private void registerFitnessListeners() {
    mStepCountListener =
            new OnDataPointListener() {
                @Override
                public void onDataPoint(DataPoint dataPoint) {
                    for (Field field : dataPoint.getDataType().getFields()){
                        int stepDelta = dataPoint.getValue(field).asInt();
                        mSteps += stepDelta;
                        stepCountTextView.setText(
                                "Detected Datapoint field: " + field.getName()
                                + "\nDetected Datapoint value:" + mSteps);
                    }
                }
            };

    Fitness.getSensorsClient(mContext, mGoogleSignInAccount)
            .add(
                    new SensorRequest.Builder()
                            .setDataType(DataType.TYPE_STEP_COUNT_DELTA)
                            .setSamplingRate(1, TimeUnit.SECONDS)
                            .setMaxDeliveryLatency(3, TimeUnit.SECONDS)
                            .setFastestRate(1, TimeUnit.SECONDS)
                            .build(),
                    mStepCountListener)
            .addOnCompleteListener(
                    new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                            if (task.isSuccessful()){
                                Log.d(TAG, "Listener registered");
                            }else{
                                Log.e(TAG, "Listener not registered", task.getException());
                            }
                        }
                    });
}


/**
 * Unregisters the listener with the Sensors API.
 */
private void unregisterFitnessListeners(){
    Fitness.getSensorsClient(mContext, mGoogleSignInAccount)
            .remove(mStepCountListener)
            .addOnCompleteListener(new OnCompleteListener<Boolean>() {
                @Override
                public void onComplete(@NonNull Task<Boolean> task) {
                    if(task.isSuccessful() && task.getResult()){
                        Log.d(TAG, "Listener was removed");
                    }else{
                        Log.d(TAG, "Listener was not removed");
                    }
                }
            });
}
GoogleApiClient GoogleApiClient=Fitness
.getSensorsClient(上下文,GoogleSignIn.GetLastSignedAccount(上下文))
.asGoogleApiClient();
Fitness.SensorsApi.remove(googleApiClient,mListener).setResultCallback(new-ResultCallback()){
@凌驾
public void onResult(@NonNull状态){
if(status.issucess()){
Log.d(标记“onResult:成功删除传感器api”);
}否则{
Log.e(标签“onResult:无法删除传感器api”);
}
}
});

它就像一个符咒

“我也有同样的问题,有没有解决方案?”VanrajGhed说,我发现这个bug只存在于最新版本的GoogleFitAPI中。旧版本工作正常。因此,您可以将当前使用的版本更改为以下版本:“com.google.android.gms:play services fitness:12.0.1”谢谢。我已经为此挣扎了好几天了
GoogleApiClient googleApiClient = Fitness
                .getSensorsClient(context, GoogleSignIn.getLastSignedInAccount(context))
                .asGoogleApiClient();

Fitness.SensorsApi.remove(googleApiClient, mListener).setResultCallback(new ResultCallback<Status>() {
            @Override
            public void onResult(@NonNull Status status) {
                if (status.isSuccess()) {
                    Log.d(TAG, "onResult: Successfully removed sensor api");
                } else {
                    Log.e(TAG, "onResult: Unable to remove sensor api");
                }
            }
        });