如何解决OAuth 同意屏幕没有突然显示,没有错误?
我目前正在为大学构建计步器应用程序。我最近实现了 OAuth 屏幕,它(经过多次错误后)终于可以工作了。
今晚我继续下一步添加可视计步器,但是,当我构建并运行我的代码时,OAuth 屏幕不再出现?今天完全没碰连接页面,只是新建了一个带有可视化计步器的java类。
我真的很困惑为什么这不再显示,感谢任何帮助!
更新:我添加了一些捕捉点来找出我的代码出错的地方(因为没有显示错误)。我已将范围缩小到 onCreate 函数中的 authInProgress 方法。不知道这意味着什么,因为这对我来说有点新。指纹和 OAuth 同意都与 Firebase 一起正确设置。
这是我的连接类:
public class ConnectTrackerFirst extends AppCompatActivity implements OnDataPointListener,Googleapiclient.ConnectionCallbacks,Googleapiclient.OnConnectionFailedListener {
private static final int REQUEST_OAUTH = 1;
private static final String AUTH_PENDING = "auth_state_pending";
private boolean authInProgress = false;
private Googleapiclient mapiclient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.connect_tracker_first);
// failing at this statement
if (savedInstanceState != null) {
authInProgress = savedInstanceState.getBoolean(AUTH_PENDING);
}
// ---------------------
mapiclient = new Googleapiclient.Builder(this)
.addApi(fitness.SENSORS_API)
.addScope(new Scope(Scopes.fitness_ACTIVITY_READ_WRITE))
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
}
@Override
protected void onStart() {
super.onStart();
mapiclient.connect();
}
@Override
public void onConnected(Bundle bundle) {
}
@Override
public void onConnectionSuspended(int i) {
}
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
if( !authInProgress ) {
try {
authInProgress = true;
connectionResult.startResolutionForResult( ConnectTrackerFirst.this,REQUEST_OAUTH );
} catch(IntentSender.SendIntentException e ) {
}
} else {
Log.e( "GoogleFit","authInProgress" );
}
}
@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 (!mapiclient.isConnecting() && !mapiclient.isConnected()) {
mapiclient.connect();
}
} else if (resultCode == RESULT_CANCELED) {
Log.e("GoogleFit","RESULT_CANCELED");
}
} else {
Log.e("GoogleFit","requestCode NOT request_oauth");
}
}
private void registerfitnessDataListener(DataSource dataSource,DataType dataType) {
SensorRequest request = new SensorRequest.Builder()
.setDataSource( dataSource )
.setDataType( dataType )
.setSamplingRate( 3,TimeUnit.SECONDS )
.build();
fitness.SensorsApi.add( mapiclient,request,this )
.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
if (status.isSuccess()) {
Log.e( "GoogleFit","SensorApi successfully added" );
}
}
});
}
@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();
}
});
}
}
@Override
protected void onStop() {
super.onStop();
fitness.SensorsApi.remove( mapiclient,this )
.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
if (status.isSuccess()) {
mapiclient.disconnect();
}
}
});
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean(AUTH_PENDING,authInProgress);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。