Weibo.java
Die Codekopie lautet wie folgt:
@Override
geschützte void Oncreate (Bündel SavedInstancestate) {
Super.oncreate (SavedInstancestate);
setContentView (R.Layout.User_Center);
// Erstellen Sie eine Weibo -Instanz
MWIBOAUTH = New Weiboauth (this, Constants.app_key,
Constants.Redirect_url, Constants.scope);
// Erstellen Sie ein Beispiel für die Teilen von Weibo Sharing -Schnittstelle
MWIBOSHAREAPI = Weibosharesdk.Createweiboapi (this, Constants.app_key);
// Wenn die Aktivität wieder initialisiert wird (die Aktivität steht im Hintergrund, kann sie aufgrund eines unzureichenden Gedächtnisses getötet werden).
// Sie müssen {@link iWeiboshareapi#handleWeiboresponse} anrufen, um die vom Weibo -Client zurückgegebenen Daten zu empfangen.
// Ausführung ist erfolgreich, return true und rufen Sie {@link iWeiboHandler.Response#onResponse} an;
// Nicht falsch zurückgegeben werden, wird kein Rückruf oben aufgerufen
if (savedInstancestate! = null) {
mWeiboshareapi.handleWeiboresponse (getIntent (), this);
}
}
/**
* Überprüfen Sie, ob der Benutzer Sina Weibo installiert hat
*/
public void isnotinstall () {
versuchen {
// Überprüfen Sie, ob die Weibo -Client -Umgebung normal ist.
if (mWeiboshareapi.Checkenvironment (true)) {
// Registrieren Sie eine Anwendung von Drittanbietern an den Weibo-Client.
// Die Integrations- und Freigabe -Berechtigungen dieser Anhangsspalte erfordern jedoch eine Kooperationsanwendung.
mWeiboshareapi.registerApp ();
startinashare ();
}
} catch (weiboshareexception e) {
E. printstacktrace ();
Toast.makeText (userCenter.this, e.getMessage (), toast.length_long)
.zeigen();
}
if (Dialog! = null) {
Dialog.Dismiss ();
}
}
/**
* Weibo Authentifizierung und Autorisierungsrückrufkategorie. 1. Wenn Sie SSO autorisieren, müssen Sie es in {@link #onactivityResult} aufrufen
* {@link ssohandler#autorizecallback}, der Rückruf wird ausgeführt. 2. Nicht-SSO
* Wenn die Autorisierung erteilt wird, wird der Rückruf nach Abschluss der Autorisierung ausgeführt. Wenn die Autorisierung erfolgreich ist, speichern Sie bitte die Access_Token, Expires_in, UID und andere Informationen auf
* SharedPreferences in.
*/
Klasse Authistener implementiert WeiboAuthListener {
@Override
public void onComplete (Bundle -Werte) {
// analysieren das Token aus dem Bundle
maccessToken = oAuth2AccessToken.ParseAccessToken (Werte);
if (maccessToken.ISSessionvalid ()) {
// Token auf SharedPreferences speichern
AccessTokenkeeper.WriteAccessToken (userCenter.this,
maccessToken);
Nachricht senden();
}
}
@Override
public void oncancel () {
}
@Override
public void onWeiboException (Weiboxception e) {
Toast.makeText (userCenter.this,
"Auth Exception:" + e.getMessage (), toast.length_long)
.zeigen();
}
}
/**
* SINA Weibo Benutzerberechtigung
*/
public void startinashare () {
msSohandler = new SsoHandler (userCenter.This, MWIBOAUTH);
// Informationen wie AccessToken lesen, die das letzte Mal vor SharedPreferences gespeichert wurden.
maccessToken = AccessTokenKeeper.readaccessToken (this);
// Wenn das Token gültig ist, rufen Sie Weibo direkt an und senden Sie es direkt
if (maccessToken.ISSessionvalid ()) {
Nachricht senden();
} anders {
mssohandler.authorize (new Authistener ());
}
}
/**
* @See {@link Aktivität#onnewintent}
*/
@Override
geschützte void onNewintent (Absicht intent) {
Super.onNeWintent (Absicht);
// Nachdem Sie Weibo aus der aktuellen Anwendung angerufen und geteilt haben, müssen Sie diese Funktion hier aufrufen
// Die vom Weibo -Client zurückgegebenen Daten erhalten;
// {@link iWeiboHandler.response#onResponse};
mWeiboshareapi.handleWeiboresponse (Absicht, dies);
}
/**
* Wenn die SSO -Autorisierungsaktivität ausgeht, wird die Funktion aufgerufen.
*
* @see {@link Aktivität#OnactivityResult}
*/
@Override
Protected void OnactivityResult (int requestcode, int resultcode, Intent Data) {
Super.onactivityResult (RequestCode, Ergebnis, Daten);
// SSO -Autorisierungsrückruf
// Wichtig: Die Aktivität, die das SSO -Login initiiert
if (mssohandler! = null) {
msSoHandler.AuthorizeCallback (RequestCode, Ergebniscode, Daten);
}
}
/**
* Empfangen Sie Daten, die von Micro-Client angefordert werden. Wenn der Weibo -Client die aktuelle Anwendung aufruft und sie teilt, wird die Methode aufgerufen.
*
* @Param Baserequest
* Weibo Anfrage Datenobjekt anfordern
* @see {@link iWeiboshareapi#handleWeiborequest}
*/
@Override
public void onResponse (Baseresponse baseresp) {
Switch (baseresp.errcode) {
Fall wbConstants.Errorcode.err_ok:
if (publicfun.sharecondition ()) {
GainBobi ();
} anders {
Toast.makeText (this, r.string.share_success, toast.length_long)
.zeigen();
}
brechen;
Fall wbConstants.Errorcode.err_cancel:
brechen;
Fall wbConstants.Errorcode.err_fail:
Toast.makeText (this, r.string.errcode_deny, toast.length_long)
.zeigen();
brechen;
}
if (Dialog! = null) {
Dialog.Dismiss ();
}
}
/**
* Eine Anwendung von Drittanbietern sendet eine Anforderungsnachricht an Weibo und ruft die Weibo Sharing-Schnittstelle auf.
* @see {@link #SendMultimessage} oder {@link #SendsingLemessage}
*/
private void sendMessage () {
if (mWeiboshareapi.isweiboAppSupportapi ()) {
sendMultimessage ();
} anders {
Toast.makeText (this, r.string.sina_share_Hint, toast.length_short)
.zeigen();
}
}
/**
* Eine Anwendung von Drittanbietern sendet eine Anforderungsnachricht an Weibo und ruft die Weibo Sharing-Schnittstelle auf. Hinweis: Wann
* {@link iWeiboshareapi#getWeiboAppSupportapi ()}> = 10351 unterstützt das Teilen mehrerer Nachrichten gleichzeitig.
*
* @param Hastext
* Gibt es einen Text für den gemeinsam genutzten Inhalt
* @param hasimage
* Gibt es irgendwelche gemeinsam genutzten Inhalte
* @param Haswebpage
* Gibt es eine Webseite für den gemeinsam genutzten Inhalt?
*/
private void sendMultimessage () {
// 1. Initialisieren Sie die Freigabenachricht auf Weibo
Weibomultimessage Weibomessage = New Weibomultimessage ();
Weibomessage.TextObject = getTextObj ();
// Benutzer können andere Medienressourcen teilen (eine von Webseiten, Musik, Videos und Sounds)
Weibomessage.MediaObject = getWebPageObj ();
// 2. Initialisieren Sie Nachrichtenanfragen von Dritten an Weibo
SendMultimessAgetoweiborequest Anfrage = new sendMultimessAgetoweiborequest ();
// Verwenden Sie die Transaktion, um eine Anforderung eindeutig zu identifizieren
request.transaction = string.Valueof (System.currentTimemillis ());
Request.Multimessage = Weibomessage;
// 3.. Senden Sie eine Anforderungsnachricht an Weibo und rufen Sie die Weibo Sharing -Schnittstelle auf
MWIboshareapi.SendRequest (Anfrage);
// Aufzeichnungs -Sharing -Protokoll
Publicfun.sendshareApplog (usercenter.this,
getResources (). getString (r.string.micro_blog));
if (Dialog! = null) {
Dialog.Dismiss ();
}
}
/**
* Erstellen Sie ein SMS -Nachrichtenobjekt.
* @return SMS -Nachrichtenobjekt.
*/
private TextObject getTextObj () {
TextObject TextObject = new TextObject ();
TextObject.Text = getResources (). getString (R.String.Share_Content);
textObject zurückgeben;
}
/**
* Erstellen Sie ein Multimedia -Nachrichtenobjekt (Webseite).
* @Return Multimedia (Webseite) Nachrichtenobjekt.
*/
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);
MediaObject zurückgeben;
}
/**
* Diese Klasse definiert die für die Weibo -Autorisierung erforderlichen Parameter.
* @author Sina
* @Since 2013-10-07
*/
öffentliche Klasse AccessTokenKeeper {
private statische endgültige String -Einstellungen_Name = "com_weibo_sdk_android";
private statische endgültige String key_uid = "uid";
private statische endgültige Zeichenfolge KEY_ACCESS_TOKE = "Access_Token";
private statische endgültige String key_expires_in = "expires_in";
/**
* Speichern Sie das Token -Objekt in SharedPreferences.
*
* @param Context Application Context
* @param Token Token -Objekt
*/
public static void WriteAccessToken (Kontextkontext, OAuth2AccessToken Token) {
if (null == context || null == token) {
zurückkehren;
}
SharedPreferences pref = context.getSharedPreferences (Preferences_Name, context.mode_Append);
Editor Editor = PREF.EDIT ();
editor.putstring (KEY_UID, token.getuid ());
editor.putstring (KEY_ACCESS_TOKE, token.getToken ());
editor.putlong (Key_expires_in, token.getExpirestime ());
editor.commit ();
}
/**
* Lesen Sie Token -Informationen aus SharedPreferences.
*
* @param Context Application Context
*
* @Return kehren zum Token -Objekt zurück
*/
public static oauth2accessToken ReadAccessToken (Kontextkontext) {
if (null == Kontext) {
null zurückkehren;
}
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_TOKE, "");
token.setExpirestime (Pref.getLong (KEY_EXPIRES_IN, 0));
Rückgabe -Token;
}
/**
* Löschen Sie die Token -Informationen in SharedPreferences.
*
* @param Context Application Context
*/
public static void klar (Kontextkontext) {
if (null == Kontext) {
zurückkehren;
}
SharedPreferences pref = context.getSharedPreferences (Preferences_Name, context.mode_Append);
Editor Editor = PREF.EDIT ();
editor.clear ();
editor.commit ();
}
}
Das obige dreht sich alles um diesen Artikel, und ich hoffe, dass es für alle hilfreich sein wird, Java zu beherrschen.