dmt*_*bdv 5 service android facebook facebook-android-sdk
我的应用程序具有在服务器上发送一些内容的功能,并且(需要)在Facebook上发布它.它使用服务发送(对于商店数据我使用sqlite).是否有可能从服务处理Facebook会话等?我需要它,因为内容将存储在数据库中的时间和发送时间可能不同(可能连接将在很长时间内丢失并且在连接可用后开始发送,但只有我的应用程序的发送服务才会在此活动时间).对于这种情况我找不到任何解决方案(好的解决方案会很棒).请帮忙.
用户必须显式向应用程序授予权限,并且 Android 服务不支持 Activity.startActivityForResult(),因此无法通过服务重新授权来打开 Session 或添加新权限。
但是,如果您在应用程序的活动之一中打开/重新授权会话,则默认情况下会话的状态将保存到 SharedPreferences 中。如果服务在发生这种情况后创建会话,它将最终处于 SessionState.CREATED_TOKEN_LOADED 状态。如果 Session.getState() 是 CREATED_TOKEN_LOADED,则保证 Session 能够在没有 UI 的情况下 openForRead(),并且传递 null Activity 是合法的。会话将拥有您的活动保存的授予的所有权限。
为了简化这一切,您的服务只需调用:
Session session = Session.openActiveSession(this);
Run Code Online (Sandbox Code Playgroud)
如果 SharedPreferences 中没有有效令牌,则此调用返回 null。
如果您的应用程序 UI 有一个设置区域,那么首先获取存储的令牌的一个简单方法是将 LoginFragment 作为设置面板之一。这将使您的用户登录/注销,并且应该保存会话状态,以便您的服务可以在同一应用程序中获取它。
归档时间: |
|
查看次数: |
1704 次 |
最近记录: |