Weibo.java
Salinan kode adalah sebagai berikut:
@Mengesampingkan
void onCreate yang dilindungi (bundle savedInstanceState) {
super.onCreate (savedInstancestrate);
setContentView (r.layout.user_center);
// Buat instance Weibo
mweiboauth = weiboauth baru (ini, constants.app_key,
Constants.redirect_url, constants.scope);
// Buat contoh antarmuka berbagi weibo
mweiboshareAni = weibosharesdk.createWeiboapi (this, constants.app_key);
// Saat aktivitas diinisialisasi ulang (aktivitasnya ada di latar belakang, itu mungkin dibunuh karena memori yang tidak mencukupi),
// Anda perlu menelepon {@link IweiboshareAni#handleWeiboresponse} untuk menerima data yang dikembalikan oleh klien Weibo.
// Eksekusi berhasil, kembalikan true, dan hubungi {@link IweiboHandler.Response#onResponse};
// Kegagalan untuk mengembalikan false, tidak ada panggilan balik di atas disebut
if (savedInstanceState! = null) {
mweiboshareasi.handleweiboresponse (getIntent (), this);
}
}
/**
* Periksa apakah pengguna telah menginstal Sina Weibo
*/
public void isNotInstall () {
mencoba {
// Periksa apakah lingkungan klien Weibo normal.
if (mweiboshareasi.checkenvironment (true)) {
// Daftarkan aplikasi pihak ketiga ke klien Weibo.
// Namun, izin integrasi dan berbagi dari kolom lampiran ini memerlukan aplikasi kerja sama.
mweiboshareasi.registerapp ();
startinashare ();
}
} catch (weiboshareException e) {
e.printstacktrace ();
Toast.makeText (usercenter.tipis, e.getMessage (), toast.length_long)
.menunjukkan();
}
if (dialog! = null) {
dialog.dismiss ();
}
}
/**
* Kategori Callback Otentikasi dan Otorisasi Weibo. 1. Saat mengesahkan SSO, Anda perlu menyebutnya di {@link #onactivityResult}
* {@link ssoHandler#otorizeCallback}, callback akan dieksekusi. 2. Non-SSO
* Ketika otorisasi diberikan, panggilan balik akan dieksekusi setelah otorisasi selesai. Saat otorisasi berhasil, simpan informasi access_token, kedaluwarsa, uid dan lainnya
* SHAREDPREFERENSI IN.
*/
Kelas AuthListener mengimplementasikan WeiboAuthListener {
@Mengesampingkan
public void onComplete (nilai bundel) {
// Parsen token dari bundel
maccesstoken = oauth2accesstoken.parseaccesstoken (nilai);
if (maccesstoken.issessionvalid ()) {
// Simpan token ke SharedPreferences
AccessTokenkeeper.WriteAccessToken (usercenter.ini, ini, ini
MacCessToken);
sendmessage ();
}
}
@Mengesampingkan
public void oncancel () {
}
@Mengesampingkan
public void onWeiboException (WeiboException e) {
Toast.maketext (usercenter.ini, ini
"Pengecualian auth:" + e.getMessage (), toast.length_long)
.menunjukkan();
}
}
/**
* Otorisasi Pengguna Sina Weibo
*/
public void startinAshare () {
mssoHandler = ssoHandler baru (usercenter.ini, mweiboauth);
// Baca informasi seperti AccessToken yang disimpan terakhir kali dari SharedPreferences.
MacCessToken = AccessTokenkeeper.readAccessToken (ini);
// Jika token valid, hubungi dan kirim Weibo secara langsung
if (maccesstoken.issessionvalid ()) {
sendmessage ();
} kalau tidak {
mssoHandler.Authorize (new AuthListener ());
}
}
/**
* @See {@link Activity#OnNewIntent}
*/
@Mengesampingkan
void onnewintent yang dilindungi (niat niat) {
super.onnewintent (niat);
// Setelah menelepon Weibo dari aplikasi saat ini dan membaginya, saat kembali ke aplikasi saat ini, Anda perlu memanggil fungsi ini di sini
// untuk menerima data yang dikembalikan oleh klien Weibo;
// {@link IweiboHandler.Response#OnResponse};
mweiboshareasi.handleweiboresponse (niat, ini);
}
/**
* Ketika aktivitas otorisasi SSO keluar, fungsi tersebut disebut.
*
* @see {@link Activity#OnactivityResult}
*/
@Mengesampingkan
OnactivityResult void yang dilindungi (Int RequestCode, int resultCode, data niat) {
super.onactivityResult (requestCode, resultCode, data);
// callback otorisasi sso
// PENTING: Kegiatan yang memulai login SSO harus menulis ulang onactivityresult
if (mssoHandler! = null) {
mssoHandler.AuthorizeCallback (RequestCode, HasilCode, Data);
}
}
/**
* Menerima data yang diminta oleh mikro-klien. Ketika klien Weibo memanggil aplikasi saat ini dan membagikannya, metode ini dipanggil.
*
* @param Baserequest
* Weibo meminta objek data
* @see {@link IweiboshareAPi#handleWeiborequest}
*/
@Mengesampingkan
public void onResponse (Baseresponse Baseresp) {
sakelar (baseresp.errcode) {
case wbconstants.errorcode.err_ok:
if (publicfun.sharecondition ()) {
gainbobi ();
} kalau tidak {
Toast.maketext (this, r.string.share_success, toast.length_long)
.menunjukkan();
}
merusak;
case wbconstants.errorcode.err_cancel:
merusak;
case wbconstants.errorcode.err_fail:
Toast.maketext (ini, r.string.errcode_deny, toast.length_long)
.menunjukkan();
merusak;
}
if (dialog! = null) {
dialog.dismiss ();
}
}
/**
* Aplikasi pihak ketiga mengirim pesan permintaan ke Weibo dan memanggil antarmuka berbagi Weibo.
* @see {@link #sendmultimessage} atau {@link #sendSingLeMessage}
*/
private void sendMessage () {
if (mweiboshareasi.isweiboappsupportapi ()) {
sendMultimessage ();
} kalau tidak {
Toast.maketext (this, r.string.sina_share_hint, toast.length_short)
.menunjukkan();
}
}
/**
* Aplikasi pihak ketiga mengirim pesan permintaan ke Weibo dan memanggil antarmuka berbagi Weibo. Catatan: Kapan
?
*
* @param Hastext
* Apakah ada teks untuk konten yang dibagikan
* @param hasimage
* Apakah ada gambar yang dibagikan konten
* @param haswebpage
* Apakah ada halaman web untuk konten yang dibagikan?
*/
private void sendMultimessage () {
// 1. Inisialisasi pesan berbagi di Weibo
Weibomultimessage weibomessage = weibomultimessage baru ();
weibomessage.textObject = getTextObj ();
// Pengguna dapat berbagi sumber daya media lainnya (salah satu halaman web, musik, video, dan suara)
weibomessage.mediaObject = getWebPageObj ();
// 2. Inisialisasi permintaan pesan dari pihak ketiga ke Weibo
SendMultimessAgeToweiborequest permintaan = SendMultimessAgeToweiborequest baru ();
// Gunakan transaksi untuk secara unik mengidentifikasi permintaan
request.transaction = string.ValueOf (System.CurrentTimeMillis ());
request.multimessage = weibomessage;
// 3. Kirim pesan permintaan ke Weibo dan hubungi antarmuka berbagi weibo
mweiboshareasi.sendRequest (permintaan);
// Rekam log berbagi
Publicfun.sendshareApplog (usercenter.ini, ini, ini
getResources (). getString (r.string.micro_blog));
if (dialog! = null) {
dialog.dismiss ();
}
}
/**
* Buat objek pesan teks.
* @return objek pesan teks.
*/
Private TextObject getTextObj () {
TextObject TextObject = new TextObject ();
textObject.text = getResources (). getString (r.string.share_content);
mengembalikan TextObject;
}
/**
* Buat objek pesan multimedia (halaman web).
* @return multimedia (halaman web) Objek pesan.
*/
Private WebPageObject getWebPageObj () {
WebPageObject MediaObject = 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;
}
/**
* Kelas ini mendefinisikan parameter yang diperlukan untuk otorisasi Weibo.
* @author Sina
* @Since 2013-10-07
*/
Kelas Publik AccessTokenkeeper {
private static final string preferensi_name = "com_weibo_sdk_android";
Private Static Final String KEY_UID = "UID";
Private Static Final String key_access_token = "access_token";
Private Static Final String KEY_EXPIRES_IN = "Expires_in";
/**
* Simpan objek token ke SharedPreferences.
*
* @param konteks konteks aplikasi
* Objek token @param
*/
public static void writeaccesstoken (konteks konteks, oauth2accesstoken token) {
if (null == konteks || null == token) {
kembali;
}
SharedPreferences pref = context.getSharedPreferences (preferensi_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 ();
}
/**
* Baca informasi token dari SharedPreferences.
*
* @param konteks konteks aplikasi
*
* @return kembali ke objek token
*/
public static oAuth2AccessToken readAccessToken (konteks konteks) {
if (null == konteks) {
kembali nol;
}
OAuth2AccessToken token = oAuth2AccessToken baru ();
SharedPreferences pref = context.getSharedPreferences (preferensi_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 kembali;
}
/**
* Bersihkan informasi token di SharedPreferences.
*
* @param konteks konteks aplikasi
*/
public static void jelas (konteks konteks) {
if (null == konteks) {
kembali;
}
SharedPreferences pref = context.getSharedPreferences (preferensi_name, context.mode_append);
Editor Editor = pref.edit ();
editor.clear ();
editor.commit ();
}
}
Di atas adalah semua tentang artikel ini, dan saya harap akan sangat membantu bagi semua orang untuk menguasai Java.