5

Tôi phát triển một ứng dụng Android cần cho phép truy cập đọc/ghi vào ổ google của người dùng. Ngoài ra, nó được cho là chạy trên các thiết bị công cộng (có nghĩa là nhiều người có thể sử dụng cùng một thiết bị để truy cập tài khoản google drive của họ). Trong những trường hợp như vậy, không thể chấp nhận thêm tài khoản của từng người dùng vào Trình quản lý tài khoản Android. Thật không may, tất cả các hướng dẫn chính thức, sử dụng xác thực với tài khoản google đã đăng ký trên thiết bị. Cửa sổ bật lên chọn tài khoản Google hiện có từ thiết bị hoặc thêm tài khoản mới xuất hiện.Đăng nhập vào google drive trên Android mà không cần thêm tài khoản google vào thiết bị

protected void onStart() { 
     super.onStart(); 
     if (mGoogleApiClient == null) { 
      mGoogleApiClient = new GoogleApiClient.Builder(this) 
        .addApi(Drive.API) 
        .addScope(Drive.SCOPE_FILE) 
          // Optionally, add additional APIs and scopes if required. 
        .addConnectionCallbacks(this) 
        .addOnConnectionFailedListener(this) 
        .build(); 
     } 
     mGoogleApiClient.connect(); 
    } 



    /** 
    * Called when {@code mGoogleApiClient} is trying to connect but failed. 
    * Handle {@code result.getResolution()} if there is a resolution 
    * available. 
    */ 
    @Override 
    public void onConnectionFailed(ConnectionResult result) { 
     Log.i(TAG, "GoogleApiClient connection failed: " + result.toString()); 
     if (!result.hasResolution()) { 
      // Show a localized error dialog. 
      GooglePlayServicesUtil.getErrorDialog(
        result.getErrorCode(), this, 0, new OnCancelListener() { 
         @Override 
         public void onCancel(DialogInterface dialog) { 
          retryConnecting(); 
         } 
        }).show(); 
      return; 
     } 
     // If there is an existing resolution error being displayed or a resolution 
     // activity has started before, do nothing and wait for resolution 
     // progress to be completed. 
     if (mIsInResolution) { 
      return; 
     } 
     mIsInResolution = true; 
     try { 
      result.startResolutionForResult(this, REQUEST_CODE_RESOLUTION); 
     } catch (SendIntentException e) { 
      Log.e(TAG, "Exception while starting resolution activity", e); 
      retryConnecting(); 
     } 
    } 

Giải pháp thay thế là gì? Tôi cần đăng nhập vào tài khoản google (thực ra chỉ với ổ đĩa) mà không lưu tài khoản trên thiết bị. Tôi chỉ cần đăng nhập và đăng xuất khi hoàn tất, mà không để lại bất kỳ thông tin cá nhân nào trên thiết bị. Tôi có thể làm như thế nào?

+0

bạn có thể sử dụng luồng Web trong trình duyệt được nhúng. nhưng bạn sẽ cần phải xóa bộ nhớ cache mỗi khi –

+0

Bạn có chắc chắn không có cách nào để đạt được những gì tôi muốn, bằng cách sử dụng api android drive android? – user2924714

+0

không, tôi không chắc chắn. một thay thế của nó. –

Trả lời

1

Không thể thực hiện được. Chỉ những tài khoản được đăng ký trên thiết bị (được xác thực bởi chính người dùng) mới có thể được chọn/sử dụng để kết nối với GooDrive. Thậm chí nếu bạn có thể sử dụng xây dựng như:

mGoogleApiClient = new GoogleApiClient.Builder(this) 
        .addApi(Drive.API) 
        .addScope(Drive.SCOPE_FILE) 
          // Optionally, add additional APIs and scopes if required. 
        .addConnectionCallbacks(this) 
        .addOnConnectionFailedListener(this) 
        .setAccountName([[email protected]]) 
        .build(); 

(xin chú ý đến .setAccountName ([[email protected]])), email vẫn phải được một trong các tài khoản thiết bị đã đăng ký. Ứng dụng không thể giải quyết bất kỳ tài khoản nào mà người dùng/cô ấy không xác thực, nó sẽ là bảo mật không-không, đúng không?

Chúc may mắn

+0

nó là vấn đề an ninh chỉ khi ứng dụng không yêu cầu mật khẩu. Những gì tôi đã mong đợi là sẽ có khả năng nhận được từ người dùng gmail của anh ta và mật khẩu của anh ấy, và sau đó tạo một kết nối bảo mật cho tài khoản. Trong trường hợp của tôi, ứng dụng sẽ chạy trên thiết bị công cộng, vì vậy nó là một bảo mật để thêm mỗi tài khoản người dùng vào thiết bị ngay khi tôi thêm tài khoản, nó bắt đầu đồng bộ hóa các thư, lịch. Và tôi chỉ muốn ổ đĩa của Google. Vì vậy, việc thêm tài khoản vào thiết bị công cộng tạo ra sự cố bảo mật – user2924714

+0

Tôi không phải là người của Google, chỉ là nhà phát triển giống như bạn. Những gì tôi đăng là kiến ​​thức của tôi từ trải nghiệm/thử nghiệm của tôi. Không tìm thấy bất kỳ thứ gì trong GDAA sẽ hoạt động theo cách bạn mô tả. Có thể một API khác. – seanpj

Các vấn đề liên quan