私はAndroidアプリでgoogle fit apiを使用しようとしています。私はthisガイドをたどり、jdk 1.8 binフォルダのkeytool.exeを使ってSHA-1証明書を作成しました。 OauthクライアントID を作成しました。私のアプリでGoogle Oauth 2.0 Google Fit APIを使用しているときにRESULT_CANCELED
は、私がここにRESULT_CANCELEDます:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == REQUEST_OAUTH) {
authInProgress = false;
if(resultCode == RESULT_OK) {
if(!mClient.isConnecting() && !mClient.isConnected()) {
mClient.connect();
}
} else if(resultCode == RESULT_CANCELED) {/// HERE
Toast.makeText(MainActivity.this,"RESULT_CANCELED",Toast.LENGTH_SHORT).show();
Log.e("GoogleFit", "RESULT_CANCELED");
Log.e("GoogleFit", data.getExtras().toString());
}
}else if(requestCode == CALL_END){
if (resultCode == Activity.RESULT_OK){
//pass
}else{
}
} else {
Log.e("GoogleFit", "requestCode NOT request_oauth");
}
}
は最後の2日間から問題を把握しようとしています。 compile 'com.google.android.gms:play-services-fitness:8.4.0'
ビルクライアント::私はアンドロイドのスタジオで正しいプレイ・サービスのライブラリを追加した
private void buildFitnessClient() {
if (mClient == null && checkPermissions()) {
Log.i(TAG, "Building Fitness Client");
mClient = new GoogleApiClient.Builder(this)
.addApi(Fitness.SENSORS_API)
.addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE))
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
mClient.connect();
}
}
コールバック:Gradleので
/**
* GOOGLE FIT METHODS
*/
@Override
public void onConnected(@Nullable Bundle bundle) {
DataSourcesRequest dataSourceRequest = new DataSourcesRequest.Builder()
.setDataTypes(DataType.TYPE_STEP_COUNT_CUMULATIVE)
.setDataSourceTypes(DataSource.TYPE_RAW)
.build();
ResultCallback<DataSourcesResult> dataSourcesResultCallback = new ResultCallback<DataSourcesResult>() {
@Override
public void onResult(DataSourcesResult dataSourcesResult) {
for(DataSource dataSource : dataSourcesResult.getDataSources()) {
if(DataType.TYPE_STEP_COUNT_CUMULATIVE.equals(dataSource.getDataType())) {
registerFitnessDataListener(dataSource, DataType.TYPE_STEP_COUNT_CUMULATIVE);
}
}
}
};
Fitness.SensorsApi.findDataSources(mClient, dataSourceRequest)
.setResultCallback(dataSourcesResultCallback);
}
@Override
public void onConnectionSuspended(int i) {
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
if(!authInProgress) {
try {
authInProgress = true;
connectionResult.startResolutionForResult(MainActivity.this, REQUEST_OAUTH);
} catch(IntentSender.SendIntentException e) {
}
} else {
Log.e("GoogleFit", "authInProgress");
}
}
@Override
public void onDataPoint(DataPoint dataPoint) {
for(final Field field : dataPoint.getDataType().getFields()) {
final Value value = dataPoint.getValue(field);
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "Field: " + field.getName() + " Value: " + value, Toast.LENGTH_SHORT).show();
HealthRecordFragment.mStepsWalking.setText(value.toString());
}
});
}
}
:取得する
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.xxxx.xxxx"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
signingConfigs {
release {
storeFile file("C:\\Users\\xxxxx\\AndroidStudioProjects\\HBEAT2\\app\\hbeat_android")
storePassword "password"
keyAlias "hbeat_android"
keyPassword "password"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services-fitness:8.4.0'
compile 'com.android.support:appcompat-v7:23.1.1'
compile "com.android.support:design:23.2.1"
compile 'com.github.rahatarmanahmed:circularprogressview:2.4.0'
compile 'de.timroes.android:EnhancedListView:0.3.0'
}
リクエストを受け取るためにどのような意図を使用していますか?あなたが適切なデータを送信していない場合は、そうかもしれません。 – MiltoxBeyond
上記コードを参照してください。それは私がクライアントを構築する方法です –
また、OauthクライアントIDの使用は何ですか?私はそれを作成しましたが、私はどこでもそれを使用していません –