我正在创建一个应用程序,我正在将Google Drive Android API集成到其中.我有一个主要活动,然后打开一个片段,导致谷歌驱动器.但是,当我尝试登录时(无论是什么gmail帐户,我都尝试过现有的,创建新的,无论如何)我得到ConnectionResult错误代码17 SIGN_IN_FAILED.该应用已在开发者控制台中获得授权,并且已启用Drive API.我不知道还能做什么.
这是相关代码:
public class FileSharingFragment extends Fragment implements
GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (mGoogleApiClient == null) {
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
}
mGoogleApiClient.connect();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_file_sharing, container, false);
users = (TextView) rootView.findViewById(R.id.users);
getActivity().setTitle("Files");
return rootView;
}
@Override
public void onActivityResult(int requestCode, int resultCode,
Intent data) …Run Code Online (Sandbox Code Playgroud) android google-drive-api android-studio google-drive-android-api
所以我有一个调用DialogFragment的片段(WifiSetupFragment),而DialogFragment需要将字符串传递回原始片段.我知道要做到这一点,你在活动中有一个接口,将数据发送到原始片段,我已经在做了:
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.addToBackStack(null);
transaction.replace(R.id.content_frag, WifiSetupFragment.newInstance(password));
transaction.commit();
Run Code Online (Sandbox Code Playgroud)
所以我第一次调用WifiSetupFragment时,我还没有创建一个DialogFragment,因为我没有点击一个项目来打开对话框.我的问题是我应该打电话
WifiSetupFragment.newInstance(null)
Run Code Online (Sandbox Code Playgroud)
并对我的片段中的密码字符串进行空检查?因为除非DialogFragment打开,否则我没有密码,并且它并不总是打开.如果这没有意义,请告诉我,我会尝试更清楚地解释.我想这对我来说似乎很奇怪,因为数据不是经常被传入,所以偶尔会有一个字符串的参数可能只被发送到这个片段.
android ×2