Created
June 30, 2020 12:48
-
-
Save kayahanbaskeser/dbb3f1e201905f66c729145493a6950c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.huawei.demo.hihealth; | |
import android.app.PendingIntent; | |
import android.content.Context; | |
import android.content.Intent; | |
import android.os.Bundle; | |
import android.text.method.ScrollingMovementMethod; | |
import android.util.Log; | |
import android.view.View; | |
import android.widget.TextView; | |
import androidx.appcompat.app.AppCompatActivity; | |
import com.huawei.demo.hihealth.broadcastreceiver.DataRegisterReceiver; | |
import com.huawei.health.demo.R; | |
import com.huawei.hmf.tasks.OnFailureListener; | |
import com.huawei.hmf.tasks.OnSuccessListener; | |
import com.huawei.hmf.tasks.Task; | |
import com.huawei.hms.hihealth.DataController; | |
import com.huawei.hms.hihealth.HiHealthOptions; | |
import com.huawei.hms.hihealth.HiHealthStatusCodes; | |
import com.huawei.hms.hihealth.HuaweiHiHealth; | |
import com.huawei.hms.hihealth.data.DataCollector; | |
import com.huawei.hms.hihealth.data.DataType; | |
import com.huawei.hms.hihealth.data.Field; | |
import com.huawei.hms.hihealth.data.SamplePoint; | |
import com.huawei.hms.hihealth.data.SampleSet; | |
import com.huawei.hms.hihealth.options.DeleteOptions; | |
import com.huawei.hms.hihealth.options.ModifyDataMonitorOptions; | |
import com.huawei.hms.hihealth.options.ReadOptions; | |
import com.huawei.hms.hihealth.options.UpdateOptions; | |
import com.huawei.hms.hihealth.result.ReadReply; | |
import com.huawei.hms.support.hwid.HuaweiIdAuthManager; | |
import com.huawei.hms.support.hwid.result.AuthHuaweiId; | |
import java.text.ParseException; | |
import java.text.SimpleDateFormat; | |
import java.util.Date; | |
import java.util.concurrent.TimeUnit; | |
import java.util.regex.Matcher; | |
import java.util.regex.Pattern; | |
public class HihealthKitDataManagerActivity extends AppCompatActivity { | |
private static final String TAG = "DataController"; | |
private DataController dataController; | |
private Context context; | |
private PendingIntent pendingIntent; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_hihealth_datamanager); | |
context = this; | |
initDataController(); | |
} | |
private void initDataController() { | |
HiHealthOptions hiHealthOptions = HiHealthOptions.builder() | |
.addDataType(DataType.DT_CONTINUOUS_STEPS_DELTA, HiHealthOptions.ACCESS_READ) | |
.addDataType(DataType.DT_CONTINUOUS_STEPS_DELTA, HiHealthOptions.ACCESS_WRITE) | |
.addDataType(DataType.DT_INSTANTANEOUS_HEIGHT, HiHealthOptions.ACCESS_READ) | |
.addDataType(DataType.DT_INSTANTANEOUS_HEIGHT, HiHealthOptions.ACCESS_WRITE) | |
.build(); | |
AuthHuaweiId signInHuaweiId = HuaweiIdAuthManager.getExtendedAuthResult(hiHealthOptions); | |
dataController = HuaweiHiHealth.getDataController(context, signInHuaweiId); | |
} | |
public void insertData(View view) throws ParseException { | |
// 1. DataCollector objesini yaratiyoruz. | |
DataCollector dataCollector = new DataCollector.Builder().setPackageName(context) | |
.setDataType(DataType.DT_CONTINUOUS_STEPS_DELTA) | |
.setDataStreamName("STEPS_DELTA") | |
.setDataGenerateType(DataCollector.DATA_TYPE_RAW) | |
.build(); | |
// 2. Datacollector objesini kullanarak bir sample set olusturuyoruz. | |
final SampleSet sampleSet = SampleSet.create(dataCollector); | |
// 3. Sample Point icerisine vermek icin tarih ve adim sayisi yaziyoruz. | |
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); | |
Date startDate = dateFormat.parse("2020-03-17 09:00:00"); | |
Date endDate = dateFormat.parse("2020-03-17 09:05:00"); | |
int stepsDelta = 1000; | |
// 4. DT_CONTINUOUS_STEPS_DELTA | |
SamplePoint samplePoint = sampleSet.createSamplePoint() | |
.setTimeInterval(startDate.getTime(), endDate.getTime(), TimeUnit.MILLISECONDS); | |
samplePoint.getFieldValue(Field.FIELD_STEPS_DELTA).setIntValue(stepsDelta); | |
// 5. sampleSet icerisine ekliyoruz. Birden fazla sampleSet ekleyebilirsiniz. | |
sampleSet.addSample(samplePoint); | |
// 6. dataController i cagirip insert methodunu calistiyoruz. | |
Task<Void> insertTask = dataController.insert(sampleSet); | |
insertTask.addOnSuccessListener(new OnSuccessListener<Void>() { | |
@Override | |
public void onSuccess(Void result) { | |
Log.d(TAG, "Success insert an SampleSet into HMS core"); | |
} | |
}).addOnFailureListener(new OnFailureListener() { | |
@Override | |
public void onFailure(Exception e) { | |
Log.d(TAG, "Error" + e); | |
} | |
}); | |
} | |
public void deleteData(View view) throws ParseException { | |
DataCollector dataCollector = new DataCollector.Builder().setPackageName(context) | |
.setDataType(DataType.DT_CONTINUOUS_STEPS_DELTA) | |
.setDataStreamName("STEPS_DELTA") | |
.setDataGenerateType(DataCollector.DATA_TYPE_RAW) | |
.build(); | |
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); | |
Date startDate = dateFormat.parse("2020-03-17 09:00:00"); | |
Date endDate = dateFormat.parse("2020-03-17 09:05:00"); | |
DeleteOptions deleteOptions = new DeleteOptions.Builder().addDataCollector(dataCollector) | |
.setTimeInterval(startDate.getTime(), endDate.getTime(), TimeUnit.MILLISECONDS) | |
.build(); | |
Task<Void> deleteTask = dataController.delete(deleteOptions); | |
deleteTask.addOnSuccessListener(new OnSuccessListener<Void>() { | |
@Override | |
public void onSuccess(Void result) { | |
Log.d(TAG, "Success delete an SampleSet into HMS core"); | |
} | |
}).addOnFailureListener(new OnFailureListener() { | |
@Override | |
public void onFailure(Exception e) { | |
Log.d(TAG, "Error" + e); | |
} | |
}); | |
} | |
public void updateData(View view) throws ParseException { | |
DataCollector dataCollector = new DataCollector.Builder().setPackageName(context) | |
.setDataType(DataType.DT_CONTINUOUS_STEPS_DELTA) | |
.setDataStreamName("STEPS_DELTA") | |
.setDataGenerateType(DataCollector.DATA_TYPE_RAW) | |
.build(); | |
SampleSet sampleSet = SampleSet.create(dataCollector); | |
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); | |
Date startDate = dateFormat.parse("2020-03-17 09:00:00"); | |
Date endDate = dateFormat.parse("2020-03-17 09:05:00"); | |
int stepsDelta = 2000; | |
SamplePoint samplePoint = sampleSet.createSamplePoint() | |
.setTimeInterval(startDate.getTime(), endDate.getTime(), TimeUnit.MILLISECONDS); | |
samplePoint.getFieldValue(Field.FIELD_STEPS_DELTA).setIntValue(stepsDelta); | |
sampleSet.addSample(samplePoint); | |
UpdateOptions updateOptions = | |
new UpdateOptions.Builder().setTimeInterval(startDate.getTime(), endDate.getTime(), TimeUnit.MILLISECONDS) | |
.setSampleSet(sampleSet) | |
.build(); | |
Task<Void> updateTask = dataController.update(updateOptions); | |
updateTask.addOnSuccessListener(new OnSuccessListener<Void>() { | |
@Override | |
public void onSuccess(Void result) { | |
Log.d(TAG, "Success update an SampleSet into HMS core"); | |
} | |
}).addOnFailureListener(new OnFailureListener() { | |
@Override | |
public void onFailure(Exception e) { | |
Log.d(TAG, "Error" + e); | |
} | |
}); | |
} | |
public void readData(View view) throws ParseException { | |
DataCollector dataCollector = new DataCollector.Builder().setPackageName(context) | |
.setDataType(DataType.DT_CONTINUOUS_STEPS_DELTA) | |
.setDataStreamName("STEPS_DELTA") | |
.setDataGenerateType(DataCollector.DATA_TYPE_RAW) | |
.build(); | |
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); | |
Date startDate = dateFormat.parse("2020-03-17 09:00:00"); | |
Date endDate = dateFormat.parse("2020-03-17 09:05:00"); | |
ReadOptions readOptions = new ReadOptions.Builder().read(dataCollector) | |
.setTimeRange(startDate.getTime(), endDate.getTime(), TimeUnit.MILLISECONDS) | |
.build(); | |
Task<ReadReply> readReplyTask = dataController.read(readOptions); | |
readReplyTask.addOnSuccessListener(new OnSuccessListener<ReadReply>() { | |
@Override | |
public void onSuccess(ReadReply readReply) { | |
Log.d(TAG, "Success delete an SampleSet into HMS core"); | |
} | |
}).addOnFailureListener(new OnFailureListener() { | |
@Override | |
public void onFailure(Exception e) { | |
Log.d(TAG, "Error" + e); | |
} | |
}); | |
}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment