編輯:關於Android編程
1、申請注冊你的appid
2、下載sdk
QQ: http://wiki.open.qq.com/wiki/mobile/SDK%E4%B8%8B%E8%BD%BD
微信:https://open.weixin.qq.com/cgi-bin/readtemplate?t=resource/app_download_android_tmpl&lang=zh_CN
3、將下載的文件

導入進工程下的app/libs/下,liba開頭的的微信需要的,另外兩個是QQ需要的
閱讀官方文檔QQ:http://wiki.open.qq.com/wiki/mobile/API%E8%B0%83%E7%94%A8%E8%AF%B4%E6%98%8E
微信:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317340&token=&lang=zh_CN
PS 微信需要安裝簽名生成工具輸入包名申請。
4、在 AndroidManifest.xml 中配置
微信:
QQ:
5、接下來就是代碼,微信還需要在報名下指定文件夾中新建指定類名的activity

WXEntryActivity類:
public class WXEntryActivity extends AppCompatActivity implements IWXAPIEventHandler {
private final String APP_ID= "你的appid";
private IWXAPI api;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 通過WXAPIFactory工廠,獲取IWXAPI的實例
api = WXAPIFactory.createWXAPI(this, APP_ID, false);
api.registerApp(APP_ID);
api.handleIntent(getIntent(), this);
}
//微信發送消息給app,app接受並處理的回調函數
@Override
public void onReq(BaseReq req) {
}
//app發送消息給微信,微信返回的消息回調函數,根據不同的返回碼來判斷操作是否成功
@Override
public void onResp(BaseResp resp) {
int result = 0;
switch (resp.errCode) {
case BaseResp.ErrCode.ERR_OK:
result = R.string.errcode_success;
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
result = R.string.errcode_cancel;
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED:
result = R.string.errcode_deny;
break;
default:
result = R.string.errcode_unknown;
break;
}
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
finish();
}
}
ShareActivity類:
public class ShareActivity extends BaseActivity implements View.OnClickListener {
private final String W_APPID = "wxd70e5a411362e82b";
private IWXAPI api;
private final String Q_APPID = "1105648864";
private Tencent mTencent;
private Button quit;
private ImageView qZone;
private ImageView qq;
private ImageView weichat;
private ImageView weichatFriend;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.share_popup);
regToWx();
regToQQ();
setBaseActionbar();
initView();
}
private void regToQQ() {
// Tencent類是SDK的主要實現類,開發者可通過Tencent類訪問騰訊開放的OpenAPI。
// 其中APP_ID是分配給第三方應用的appid,類型為String。
mTencent = Tencent.createInstance(Q_APPID, mContext);
}
private void regToWx() {
api = WXAPIFactory.createWXAPI(this, W_APPID, true);
api.registerApp(W_APPID);
}
private void initView() {
quit = (Button) findViewById(R.id.quit);
qZone = (ImageView) findViewById(R.id.qzone);
qq = (ImageView) findViewById(R.id.qq);
weichat = (ImageView) findViewById(R.id.weichat);
weichatFriend = (ImageView) findViewById(R.id.weichat_friend);
actionbarLeft.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
quit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
qZone.setOnClickListener(this);
qq.setOnClickListener(this);
weichat.setOnClickListener(this);
weichatFriend.setOnClickListener(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
}
private void setBaseActionbar() {
setActionbarLeft(R.mipmap.pixel_ic_toolbar_back);
setActionbarTitle("分享", "SAHRE");
hideActionbarRight();
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.qzone:
// mLog("點擊QQ空間");
qq(true);
break;
case R.id.qq:
// mLog("點擊QQ");
qq(false);
break;
case R.id.weichat:
// mLog("點擊威信");
weiChat(0);
break;
case R.id.weichat_friend:
// mLog("點擊朋友圈");
weiChat(1);
break;
default:
break;
}
}
private void qq(boolean flag) {
if (mTencent.isSessionValid() && mTencent.getOpenId() == null) {
mToast("您還未安裝QQ", 0);
}
final Bundle params = new Bundle();
params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_APP);
params.putString(QQShare.SHARE_TO_QQ_TITLE, "要分享的標題");
params.putString(QQShare.SHARE_TO_QQ_SUMMARY, "要分享的摘要");
params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, "http://imgcache.qq.com/qzone/space_item/pre/0/66768.gif");
params.putString(QQShare.SHARE_TO_QQ_APP_NAME, "測試應用222222");
if(flag){
params.putInt(QQShare.SHARE_TO_QQ_EXT_INT, QQShare.SHARE_TO_QQ_FLAG_QZONE_AUTO_OPEN);
}
mTencent.shareToQQ(ShareActivity.this, params, new ShareListener());
}
// 0-分享給朋友 1-分享到朋友圈
private void weiChat(int flag) {
if (!api.isWXAppInstalled()) {
mToast("您還未安裝微信", 0);
return;
}
//創建一個WXWebPageObject對象,用於封裝要發送的Url
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = "http://www.mojichina.com/";
//創建一個WXMediaMessage對象
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = "測試";
msg.description = "這是我做的一款天氣類app,高端大氣上檔次,快來看看吧!";
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = String.valueOf(System.currentTimeMillis());//transaction字段用於唯一標識一個請求,這個必須有,否則會出錯
req.message = msg;
//表示發送給朋友圈 WXSceneTimeline 表示發送給朋友 WXSceneSession
req.scene = flag == 0 ? SendMessageToWX.Req.WXSceneSession : SendMessageToWX.Req.WXSceneTimeline;
api.sendReq(req);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
ShareListener myListener = new ShareListener();
Tencent.onActivityResultData(requestCode, resultCode, data, myListener);
}
private class ShareListener implements IUiListener {
@Override
public void onCancel() {
mToast("分享取消", 0);
}
@Override
public void onComplete(Object arg0) {
mToast("分享成功", 0);
}
@Override
public void onError(UiError arg0) {
mToast("分享出錯", 0);
}
}
}
代碼應該一目了然,actionbarLeft是BaseActivity中的,無視就行,接下來是幾張截圖,應該看的更明白。
QQ分享不出去,是因為appid的問題,大家可以去查一下。





Android 實現控件懸浮效果實例代碼
隨著移動互聯網的快速發展,它已經和我們的生活息息相關了,在公交地鐵裡面都能看到很多人的人低頭看著自己的手機屏幕,從此“低頭族”一詞就產生了,作為一名移動行業的開發人員,我
功能強大的登錄界面Android實現代碼
前言 一個好的應用需要一個有良好的用戶體驗的登錄界面,現如今,許多應用的的登錄界面都有著用戶名,密碼一鍵刪除,用戶名,密碼
Android開發系列(十九):為SimpleAdapter設置樣式
Adapter的作用:數據在adapter中做了處理之後,顯示在視圖上 一般的對於ArrayAdapter來說,只需要把一個數組和一個樣式傳遞給ArrayAdapter之
android動畫 ——視圖動畫(View Animation)
相對與屬性動畫視圖動畫使用環境:view animation system提供的能力只能夠為View添加動畫。因此如果你想為非View對象添加動畫,就必須自己去實現,vi