Weibo.java
La copie de code est la suivante:
@Outrepasser
vide protégé sur onCreate (bundle SavedInstancEstate) {
super.onCreate (SavedInstancEstate);
setContentView (r.layout.user_center);
// Créer une instance Weibo
mweiboauth = new WeiboAuth (ceci, constants.app_key,
Constants.redirect_url, constants.scope);
// Créer un exemple d'interface de partage de Weibo
mweiboshareapi = weibosharesdk.createweiboapi (this, constants.app_key);
// Lorsque l'activité est réinitialisée (l'activité est en arrière-plan, elle peut être tuée en raison d'une mémoire insuffisante),
// Vous devez appeler {@link iweiboshareapi # handleweiboresponse} pour recevoir les données renvoyées par le client Weibo.
// L'exécution est réussie, renvoie true et appelle {@link iweibohandler.Response # onResponse};
// ne pas retourner false, aucun rappel ci-dessus n'est appelé
if (SavedInstancestate! = null) {
mweiboshareapi.handleiboresponse (getIntent (), this);
}
}
/ **
* Vérifiez si l'utilisateur a installé Sina Weibo
* /
public void isnotinstall () {
essayer {
// Vérifiez si l'environnement du client Weibo est normal.
if (mweiboshareapi.checkenvironment (true)) {
// Enregistrez une application tierce au client de Weibo.
// Cependant, les autorisations d'intégration et de partage de cette colonne de pièce jointe nécessitent une application de coopération.
mweiboshareapi.registerapp ();
StorsInashare ();
}
} catch (WeiboshareException e) {
e.printStackTrace ();
Toast.maketext (usercenter. this, e.getMessage (), toast.length_long)
.montrer();
}
if (dialog! = null) {
Dialog.Dismiss ();
}
}
/ **
* Catégorie de rappel d'authentification et d'autorisation de Weibo. 1. Lorsque vous autorisez SSO, vous devez l'appeler dans {@Link #OnactivityResult}
notre 2. Non-SSO
* Lorsque l'autorisation est accordée, le rappel sera exécuté une fois l'autorisation terminée. Lorsque l'autorisation est réussie, veuillez enregistrer l'accès_token, expires_in, uid et autres informations pour
* PartagedPreferences in.
* /
classe AuthListener implémente WeiboAuthListener {
@Outrepasser
public void onComplete (Valeurs du bundle) {
// Analyser le jeton du bundle
macCessToken = oAuth2ACCESSTOKIN.PARSEACCESSTOKINE (VALEURS);
if (maccesstoken.issessionvalid ()) {
// Enregistrer le jeton à partagés
AccessTokenkeeper.WriteAccessStoken (usercenter.
maccesstoken);
sendMessage ();
}
}
@Outrepasser
public void oncancel () {
}
@Outrepasser
public void onweiboException (WeiboException e) {
Toast.maketext (usercent.et,
"Auth exception:" + e.getMessage (), toast.length_long)
.montrer();
}
}
/ **
* Autorisation de l'utilisateur de Sina Weibo
* /
public void startinashare () {
mssohandler = new ssohandler (usercent.tout, mweiboauth);
// Lisez des informations telles que AccessToken qui a été enregistrée la dernière fois de SharedPreferences.
maccessToken = AccessTokenkeeper.readAccessToken (this);
// Si le jeton est valide, appelez et envoyez Weibo directement
if (maccesstoken.issessionvalid ()) {
sendMessage ();
} autre {
mSSoHandler.Authorize (new AuthListener ());
}
}
/ **
* @See {@Link Activity # onnewintent}
* /
@Outrepasser
vide protégé onnewintent (intention d'intention) {
Super.NonWintent (intention);
// Après avoir appelé Weibo à partir de l'application actuelle et le partager, lorsque vous retournez à l'application actuelle, vous devez appeler cette fonction ici
// Pour recevoir les données renvoyées par le client Weibo;
// {@link iweibohandler.Response # onResponse};
mweiboshareapi.handleiboresponse (intention, this);
}
/ **
* Lorsque l'activité d'autorisation SSO quitte, la fonction est appelée.
*
* @see {@Link Activity # OnActivityResult}
* /
@Outrepasser
protégé void onactivityResult (int de demande
super.onactivityResult (requestcode, résultat, données);
// rappel d'autorisation SSO
// IMPORTANT: L'activité qui initie la connexion SSO doit être réécrite sur la réactivité
if (mssohandler! = null) {
mSSoHandler.AuthorizECallback (requestcode, résultat, données);
}
}
/ **
* Recevez les données demandées par micro-client. Lorsque le client Weibo appelle l'application actuelle et la partage, la méthode est appelée.
*
* @param baserequest
* Objet de données de demande Weibo
* @see {@link iweiboshareapi # handleweiborequest}
* /
@Outrepasser
public void onResponse (BaseResponse BaseSesp) {
Switch (BaseSesp.errcode) {
cas wbconstants.errorcode.err_ok:
if (publicfun.sharecondition ()) {
gainbobi ();
} autre {
Toast.maketext (this, r.string.share_success, toast.length_long)
.montrer();
}
casser;
cas wbConstants.errorcode.err_cancel:
casser;
cas wbconstants.errorcode.err_fail:
Toast.maketext (ceci, r.string.errcode_deny, toast.length_long)
.montrer();
casser;
}
if (dialog! = null) {
Dialog.Dismiss ();
}
}
/ **
* Une application tierce envoie un message de demande à Weibo et appelle l'interface de partage de Weibo.
* @see {@link #SendMultiMessage} ou {@Link #SendSingleMessage}
* /
private void sendMessage () {
if (mweiboshareapi.isweiboAppSupportapi ()) {
SendMultiMessage ();
} autre {
Toast.maketext (ceci, r.string.sina_share_hint, toast.length_short)
.montrer();
}
}
/ **
* Une application tierce envoie un message de demande à Weibo et appelle l'interface de partage de Weibo. Remarque: quand
* {@link iweiboshareapi # getWeiBoAppSupportAPI ()}> = 10351, il prend en charge le partage de plusieurs messages en même temps.
*
* @param HASSEXT
* Y a-t-il du texte pour le contenu partagé
* @param hasimage
* Y a-t-il des images du contenu partagé
* @param haswebpage
* Existe-t-il une page Web pour le contenu partagé?
* /
private void SendMultiMessage () {
// 1. Initialisez le message de partage sur Weibo
WeiboMultimesage WeiboMessage = new WeiboMultimessage ();
WeiboMessage.TextObject = getTextObj ();
// Les utilisateurs peuvent partager d'autres ressources médiatiques (l'une des pages Web, de la musique, des vidéos et des sons)
WeiboMessage.MediaObject = getWebPageObj ();
// 2. Initialiser les demandes de messages de tiers à Weibo
SendMultiMessageToweIborequest Request = new SendMultiMessageToweIboreQut ();
// Utiliser la transaction pour identifier de manière unique une demande
request.transaction = string.valueof (System.Currenttimemillis ());
request.MultiMessage = WeiboMessage;
// 3. Envoyez un message de demande à Weibo et appelez l'interface de partage de Weibo
mweiboshareapi.sendRequest (demande);
// journal de partage d'enregistrement
Publicfun.SendShareApplog (usercenter.
getResources (). getString (r.string.micro_blog));
if (dialog! = null) {
Dialog.Dismiss ();
}
}
/ **
* Créez un objet de message texte.
* @Return Message Message Message.
* /
TextObject privé getTextObj () {
TextObject textObject = new TextObject ();
textObject.Text = getResources (). getString (r.string.share_content);
return textObject;
}
/ **
* Créez un objet de message multimédia (page Web).
* @return Multimedia (page Web) Objet de message.
* /
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;
}
/ **
* Cette classe définit les paramètres requis pour l'autorisation de Weibo.
* @author Sina
* @Since 2013-10-07
* /
classe publique AccessTokenkeeper {
Private Static Final String Preferences_name = "com_weibo_sdk_android";
chaîne finale statique privée key_uid = "uid";
chaîne finale statique privée key_access_token = "access_token";
chaîne finale statique privée key_expires_in = "exires_in";
/ **
* Enregistrez l'objet de jeton à SharedPreferences.
*
* Contexte de contexte de contexte @param
* objet de jeton de jeton @param
* /
public statique void writeAccesstoken (contexte de contexte, oauth2accesstoken token) {
if (null == context || null == jeton) {
retour;
}
SharedPreferences pref = context.getSharedPreferences (prerits_name, context.mode_append);
Éditeur éditeur = pref.edit ();
editor.putString (key_uid, token.getUid ());
editor.putString (key_access_token, token.getToken ());
editor.putLong (key_expires_in, token.getExpirestime ());
editor.Commit ();
}
/ **
* Lisez les informations de jeton de SharedPreferences.
*
* Contexte de contexte de contexte @param
*
* @return Retour à l'objet token
* /
Public statique oauth2accesstoken readAccessToken (contexte de contexte) {
if (null == context) {
retourner null;
}
OAuth2AccessToken token = new oAuth2AccessToken ();
SharedPreferences pref = context.getSharedPreferences (prerits_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 retour;
}
/ **
* Effacez les informations de jeton dans SharedPreferences.
*
* Contexte de contexte de contexte @param
* /
Public statique void clair (contexte de contexte) {
if (null == context) {
retour;
}
SharedPreferences pref = context.getSharedPreferences (prerits_name, context.mode_append);
Éditeur éditeur = pref.edit ();
editor.clear ();
editor.Commit ();
}
}
Ce qui précède concerne cet article, et j'espère qu'il sera utile pour tout le monde de maîtriser Java.