weibo.java
La copia del código es la siguiente:
@Anular
nulo protegido OnCreate (Bundle SavedInstancestate) {
super.Oncreate (SavedInstancestate);
setContentView (r.layout.user_center);
// crear una instancia de Weibo
mweiboauth = new Weiboauth (this, constants.app_key,
Constants.redirect_url, constants.scope);
// Crear un ejemplo de interfaz de intercambio de Weibo
mweiboshreapi = weibosharesdk.createweiboapi (this, constants.app_key);
// Cuando la actividad se reinicializa (la actividad está en el fondo, puede matarse debido a la memoria insuficiente),
// necesita llamar {@link iweiboshreapi#handleweiborSponse} para recibir los datos devueltos por el cliente Weibo.
// La ejecución es exitosa, devuelve verdadero y llame a {@link iweiboHandler.Response#onResponse};
// no devolver falso, no se llama a ninguna devolución de llamada anterior
if (saveDInStancEstate! = null) {
mweiboshareapi.handleweiborSponse (getIntent (), esto);
}
}
/**
* Verifique si el usuario ha instalado Sina Weibo
*/
public void isNotinStall () {
intentar {
// Verifique si el entorno del cliente Weibo es normal.
if (mweiboshreapi.checkenvironment (true)) {
// Registre una aplicación de terceros al cliente Weibo.
// Sin embargo, la integración y el permiso de intercambio de esta columna de archivos adjuntos requieren una aplicación de cooperación.
mweiboshreapi.registerApp ();
comienza a inicio ();
}
} Catch (WeiboshareException e) {
E.PrintStackTrace ();
Toast.maketeext (userCenter.This, E.GetMessage (), Toast.length_long)
.espectáculo();
}
if (dialog! = null) {
dialog.dismiss ();
}
}
/**
* Categoría de devolución de llamada de autenticación y autorización de Weibo. 1. Al autorizar SSO, debe llamarlo en {@link #onactivityResult}
* {@link ssoHandler#autorizeCallback}, la devolución de llamada se ejecutará. 2. No SSO
* Cuando se otorga la autorización, la devolución de llamada se ejecutará después de completar la autorización. Cuando la autorización sea exitosa, guarde el access_token, expires_in, uid y otra información para
* SharedPreferences en.
*/
clase authListener implementa weiboauthlistener {
@Anular
public void oncomplete (valores de paquete) {
// analiza el token desde el paquete
MacCessToken = oauth2accesstoken.parseaccessToken (valores);
if (MacCessToken.issessionValid ()) {
// Guardar token a compartidos compartidos
Accesstokenkeeper.WriteAccessToken (UserCenter.THIS,
MacCessToken);
sendMessage ();
}
}
@Anular
public void onCancel () {
}
@Anular
public void onweiboException (WeiboException e) {
Toast.maketeext (userCenter.Tis,
"Excepción de autenticación:" + E.getMessage (), toast.length_long)
.espectáculo();
}
}
/**
* Autorización de usuario de Sina Weibo
*/
Public void startinaShare () {
mssoHandler = new SsoHandler (userCenter.THIS, mweiboauth);
// Leer información como AccessToken que se guardó la última vez de SharedPreferences.
MacCessToken = AccessTokenkeeper.readaccessToken (esto);
// Si el token es válido, llame y envíe a Weibo directamente
if (MacCessToken.issessionValid ()) {
sendMessage ();
} demás {
mssohandler.authorize (new AuthListener ());
}
}
/**
* @See {@link Activity#Onnewintent}
*/
@Anular
vacío protegido Onnewintent (intención intencion) {
super.onnewintent (intención);
// Después de llamar a Weibo desde la aplicación actual y compartirla, al regresar a la aplicación actual, debe llamar a esta función aquí
// para recibir los datos devueltos por el cliente Weibo;
// {@link iweiboHandler.Response#onResponse};
mweiboshareapi.handleweiborSponse (intención, esto);
}
/**
* Cuando la actividad de autorización de SSO sale, se llama a la función.
*
* @see {@link Activity#OnActivityResult}
*/
@Anular
OnActivityResult protegido (int requestCode, int resultCode, datos de intención) {
super.onactivityResult (requestcode, resultCode, data);
// devolución de llamada de autorización de SSO
// IMPORTANTE: La actividad que inicia el inicio de sesión de SSO debe ser reescribir OnActivityResult
if (mssohandler! = null) {
mssohandler.authorizeCallback (requestcode, resultCode, data);
}
}
/**
* Recibir datos solicitados por Micro-Client. Cuando el cliente Weibo llama la aplicación actual y la comparte, se llama al método.
*
* @param BaseRequest
* Objeto de datos de solicitud de Weibo
* @see {@link iweiboshreapi#handleweiborequest}
*/
@Anular
Public void onResponse (Baseresponse Baseresp) {
Switch (Baseresp.errcode) {
case wbconstants.errrocode.err_ok:
if (publicfun.sharecondition ()) {
GainBobi ();
} demás {
Toast.maketext (this, r.string.share_success, toast.length_long)
.espectáculo();
}
romper;
case wbconstants.errrocode.err_cancel:
romper;
case wbconstants.errrocode.err_fail:
Toast.maketext (this, r.string.errcode_deny, toast.length_long)
.espectáculo();
romper;
}
if (dialog! = null) {
dialog.dismiss ();
}
}
/**
* Una aplicación de terceros envía un mensaje de solicitud a Weibo y llama a la interfaz de compartir Weibo.
* @see {@link #sendMultImessage} o {@link #sendsinglemessage}
*/
vacío privado sendMessage () {
if (mweiboshreapi.isweiboappsupportapi ()) {
sendMultImessage ();
} demás {
Toast.maketeext (this, r.string.sina_share_hint, toast.length_short)
.espectáculo();
}
}
/**
* Una aplicación de terceros envía un mensaje de solicitud a Weibo y llama a la interfaz de compartir Weibo. Nota: cuando
* {@link iweiboshreapi#getWeiboAppSupportapi ()}> = 10351, admite compartir múltiples mensajes al mismo tiempo.
*
* @param Hastext
* ¿Hay algún texto para el contenido compartido?
* @param hasimage
* ¿Hay alguna imagen contenido compartido?
* @param haswebpage
* ¿Existe una página web para el contenido compartido?
*/
Vacío privado sendMultImessage () {
// 1. Inicializa el mensaje de intercambio en Weibo
Weibomultimessage weibomessage = new WeiBomultImessage ();
weibomessage.textObject = getTextObj ();
// Los usuarios pueden compartir otros recursos de medios (una de páginas web, música, videos y sonidos)
weibomessage.mediaObject = getWebPageObj ();
// 2. Inicializar solicitudes de mensajes de terceros a Weibo
SendMultIMessAsageToweiborequest solicitud = new SendMultImessageToweiborequest ();
// Use la transacción para identificar de manera única una solicitud
request.transaction = String.ValueOf (System.CurrentTimemillis ());
request.multImessage = weibomessage;
// 3. Envíe un mensaje de solicitud a Weibo y llame a la interfaz Weibo Sharing
mweiboshreapi.sendRequest (solicitud);
// Registro de registro compartido
PublicFun.SendShareApplog (userCenter.THIS,
getResources (). GetString (r.string.micro_blog));
if (dialog! = null) {
dialog.dismiss ();
}
}
/**
* Crear un objeto de mensaje de texto.
* @return Mensaje de texto Objeto.
*/
TextObject privado getTextObj () {
TextObject textObject = new TextObject ();
textObject.Text = getResources (). GetString (r.string.share_content);
devolver textObject;
}
/**
* Crear un objeto de mensaje multimedia (página web).
* @return multimedia (página web) Objeto de mensaje.
*/
Private WebPageObject getWebPageObj () {
WebPageObject MediaObject = new WebPageObject ();
MediaObject.ActionUrl = getString (r.string.share_url);
MediaObject.identify = Utility.GenerateGuid ();
MediaObject.title = getResources (). GetString (r.string.share_title);
MediaObject.description = getString (r.string.share_content);
Bitmap bmp = bitmapFactory.DecodeResource (getResources (),,
R.Drawable.icon);
MediaObject.SetThumbImage (BMP);
return MediaObject;
}
/**
* Esta clase define los parámetros requeridos para la autorización de Weibo.
* @author sina
* @Since 2013-10-07
*/
clase pública AccessTokenkeeper {
preferencias de cadena final estática privada_name = "com_weibo_sdk_android";
Cadena final estática privada key_uid = "uid";
Cadena final estática privada Key_access_token = "access_token";
Cadena final estática privada clave_EXIRES_IN = "expires_in";
/**
* Guarde el objeto token a compartir lasferencias.
*
* @param contexto de contexto contexto
* @Param Token Token Object
*/
Public static void writeAccessToken (contexto de contexto, oauth2accesstoken token) {
if (null == context || null == token) {
devolver;
}
SharedPreferences pref = context.getSharedPreferences (Preferences_Name, context.mode_append);
Editor editor = pref.Edit ();
editor.putString (key_uid, token.getuid ());
editor.putString (key_access_token, token.gettoken ());
editor.putLong (key_expires_in, token.getExpirestime ());
editor.commit ();
}
/**
* Lea la información del token de SharedPreferences.
*
* @param contexto de contexto contexto
*
* @return regresa al objeto token
*/
Public Static Oauth2accesstoken ReadaccessToken (contexto de contexto) {
if (null == context) {
regresar nulo;
}
Oauth2accesstoken token = new Oauth2accessToken ();
SharedPreferences pref = context.getSharedPreferences (Preferences_Name, context.mode_append);
token.setUid (pref.getString (key_uid, ""));
token.setToken (pref.getString (key_access_token, ""));
token.setExpirestime (pref.getLong (key_expires_in, 0));
token de regreso;
}
/**
* Borre la información del token en SharedPreferences.
*
* @param contexto de contexto contexto
*/
Public static void claro (contexto de contexto) {
if (null == context) {
devolver;
}
SharedPreferences pref = context.getSharedPreferences (Preferences_Name, context.mode_append);
Editor editor = pref.Edit ();
editor.clear ();
editor.commit ();
}
}
Lo anterior se trata de este artículo, y espero que sea útil para todos dominar a Java.