編輯:關於Android編程
進入ShareSDK解壓目錄,打開“Share SDK for Android”目錄,可以找到“QuickIntegrater.jar”,這個就是快速集成ShareSDK的工具。
Windows下:
首先確定您已經安裝了JDK,並且正確配置了JAVA_HOME和PATH系統變量,此時您可以雙擊QuickIntegrater啟動程序。
然後復制此文件夾中所有文件到自己的項目中覆蓋。
Linux/Mac OS下:
同樣需要先確保已經正確配置了JDK,之後啟動終端,cd進入“Share SDK for Android”目錄,輸入: java -jar QuickIntegrater.jar 可啟動QuickIntegrater
2.添加activity信息
3.如果集成了微信,易信,支付寶還需要添加下面回調的activity處理.
4.替換mob後台申請的Appkey與各個平台申請的key。
5.添加一鍵分享代碼
private void showShare() { ShareSDK.initSDK(this); OnekeyShare oks = new OnekeyShare(); //關閉sso授權 oks.disableSSOWhenAuthorize(); // 分享時Notification的圖標和文字 2.5.9以後的版本不調用此方法 //oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name)); // title標題,印象筆記、郵箱、信息、微信、人人網和QQ空間使用 oks.setTitle(getString(R.string.share)); // titleUrl是標題的網絡鏈接,僅在人人網和QQ空間使用 oks.setTitleUrl("http://sharesdk.cn"); // text是分享文本,所有平台都需要這個字段 oks.setText("我是分享文本"); //分享網絡圖片,新浪微博分享網絡圖片需要通過審核後申請高級寫入接口,否則請注釋掉測試新浪微博 oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg"); // imagePath是圖片的本地路徑,Linked-In以外的平台都支持此參數 //oks.setImagePath("/sdcard/test.jpg");//確保SDcard下面存在此張圖片 // url僅在微信(包括好友和朋友圈)中使用 oks.setUrl("http://sharesdk.cn"); // comment是我對這條分享的評論,僅在人人網和QQ空間使用 oks.setComment("我是測試評論文本"); // site是分享此內容的網站名稱,僅在QQ空間使用 oks.setSite(getString(R.string.app_name)); // siteUrl是分享此內容的網站地址,僅在QQ空間使用 oks.setSiteUrl("http://sharesdk.cn"); // 啟動分享GUI oks.show(this); }
功能說明:點擊分享,彈出自定義對話框;根據傳入的參數,選擇要調起的平台,不同平台分享不同內容。
- 1.dialog的布局(dialog_share.xml)
2.item的布局文件(dialog_share_item.xml)
3.shareUtils代碼(ShareUtils.java)
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.chinalife.gstc.R; import com.chinalife.gstc.common.data.Const; import com.mob.tools.utils.UIHandler; import android.app.Dialog; import android.content.Context; import android.os.Handler.Callback; import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; import android.widget.GridView; import android.widget.SimpleAdapter; import android.widget.Toast; import cn.sharesdk.framework.Platform; import cn.sharesdk.framework.PlatformActionListener; import cn.sharesdk.framework.ShareSDK; import cn.sharesdk.onekeyshare.OnekeyShare; import cn.sharesdk.sina.weibo.SinaWeibo; import cn.sharesdk.system.text.ShortMessage; import cn.sharesdk.tencent.qq.QQ; import cn.sharesdk.tencent.qq.QQ.ShareParams; import cn.sharesdk.tencent.qzone.QZone; import cn.sharesdk.wechat.friends.Wechat; import cn.sharesdk.wechat.moments.WechatMoments; public class ShareUtils { // 圖片封裝為一個數組 private static int[] icon = { R.drawable.ssdk_oks_classic_qq, R.drawable.ssdk_oks_classic_qzone, R.drawable.ssdk_oks_classic_wechat, R.drawable.ssdk_oks_classic_wechatmoments, R.drawable.ssdk_oks_classic_sinaweibo, R.drawable.ssdk_oks_classic_shortmessage }; private static String[] iconName = { "QQ", "QQ空間", "微信", "微信朋友圈", "新浪微博", "短消息" }; private static int[] platform = { 1, 2, 3, 4, 5, 6 }; private static List
注意:
- 1.傳入的參數根據需求自行增減,shareParams不同平台的差異化參數設置寫在if判斷裡,就實現不同平台分享內容差異化。
- 2.微信平台必須設置shareParams.setShareType(*);
注意:
- 1.沒有標明可選的就是必填參數,不能為null或者空字符串。
- 2.imageUrl、imagePath、imageData為三選一。
新浪微博支持分享文字、本地圖片、網絡圖片和經緯度信息。
新浪微博使用客戶端分享不會正確回調
參數說明:
text:小於2000字
image:圖片最大5M,僅支持JPEG、GIF、PNG格式
latitude:有效范圍:-90.0到+90.0,+表示北緯
longitude:有效范圍:-180.0到+180.0,+表示東經
注:微博分享鏈接是將鏈接寫到setText內:eg:setText(“分享文本 http://mob.com”);
分享文本:
- text
分享圖文:
- text imagePath
- text imageUrl
注:如果imagePath和imageUrl同時存在,imageUrl將被忽略。
騰訊微博支持分享文字、本地圖片、網絡圖片和經緯度信息。
參數說明:
text:最多140個字字符
image:圖片最大4M
分享文本:
- text latitude(可選) longitude(可選)
分享圖文:
- text imagePath latitude(可選) longitude(可選)
- text imageUrl latitude(可選) longitude(可選)
- text ImageArray latitude(可選) longitude(可選)
2.5.0以後的版本新增分享多張圖片的功能ImageArray。 由於騰訊微博分享網絡圖片並不屬於高級接口,因此imageUrl優先級高於imagePath,這就是說,如果imagePath和imageUrl同時存在,imagePath將被忽略。
QQ空間支持分享文字和圖文。
參數說明:
title:最多200個字符
text:最多600個字符
分享文本:
- title titleUrl text site siteUrl
發表說說:
- text imagePath site siteUrl
- text imageUrl site siteUrl
分享圖文:
- title titleUrl text imagePath site siteUrl
- title titleUrl text imageUrl site siteUrl
QQ空間分享時一定要攜帶title、titleUrl、site、siteUrl,QQ空間本身不支持分享本地圖片,因此如果想分享本地圖片,圖片會先上傳到ShareSDK的文件服務器,得到連接以後才分享此鏈接。由於本地圖片更耗流量,因此imageUrl優先級高於imagePath。 site是分享此內容的網站名稱,僅在QQ空間使用;siteUrl是分享此內容的網站地址,僅在QQ空間使用;
繞過審核只對微信好友、微信朋友圈有效。
微信分享如果是繞過審核(配置信息BypassApproval屬性設置為true為繞過審核),微信朋友圈可以分享單張圖片或者圖片與文字一起分享,微信好友可以進行文字或者單張圖片或者文件進行分享,分享回調不會正確回調。
不繞過審核,微信三個平台中,好友的功能最完整,朋友圈不能分享表情、文件和應用,收藏不能分享表情和應用。表格下以好友為例子:
參數說明:
title:512Bytes以內
text:1KB以內
imageData:10M以內
imagePath:10M以內(傳遞的imagePath路徑不能超過10KB)
imageUrl:10KB以內
musicUrl:10KB以內
url:10KB以內
分享文本:
- shareType(Platform.SHARE_TEXT) title text
分享圖片:
- shareType(Platform.SHARE_IMAGE) title text(設置了不會顯示,可選參數) imagePath
- shareType(Platform.SHARE_IMAGE) title text(設置了不會顯示,可選參數) imageUrl
- shareType(Platform.SHARE_IMAGE) title text(設置了不會顯示,可選參數) imageData
分享音樂:
- shareType(Platform.SHARE_MUSIC) title text(朋友圈不顯示此字段) imagePath musicUrl url(消息點擊後打開的頁面)
- shareType(Platform.SHARE_MUSIC) title text(朋友圈不顯示此字段) imageUrl musicUrl url(消息點擊後打開的頁面)
- shareType(Platform.SHARE_MUSIC) title text(朋友圈不顯示此字段) imageData musicUrl url(消息點擊後打開的頁面)
分享視頻:
- shareType(Platform.SHARE_VIDEO) title text(朋友圈不顯示此字段) imagePath url(視頻網頁地址)
- shareType(Platform.SHARE_VIDEO) title text(朋友圈不顯示此字段) imageUrl url(視頻網頁地址
- shareType(Platform.SHARE_VIDEO) title text(朋友圈不顯示此字段) imageData url(視頻網頁地址
分享網頁:
- shareType(Platform.SHARE_WEBPAGE) title text(朋友圈不顯示此字段) imagePath url
-shareType(Platform.SHARE_WEBPAGE) title text(朋友圈不顯示此字段) imageUrl url
-shareType(Platform.SHARE_WEBPAGE) title text(朋友圈不顯示此字段) imageData url
分享應用:
- shareType(Platform.SHARE_APPS) title text(朋友圈不顯示此字段) imagePath filePath(apk文件) extInfo(應用信息腳本)
- shareType(Platform.SHARE_APPS) title text(朋友圈不顯示此字段) imageUrl filePath(apk文件) extInfo(應用信息腳本)
- shareType(Platform.SHARE_APPS) title text(朋友圈不顯示此字段) imageData filePath(apk文件) extInfo(應用信息腳本)
分享文件:
- shareType(Platform.SHARE_FILE) title text(朋友圈不顯示此字段) imagePath filePath
- shareType(Platform.SHARE_FILE) title text(朋友圈不顯示此字段) imageUrl filePath
- shareType(Platform.SHARE_FILE) title text(朋友圈不顯示此字段) imageData filePath
分享表情:
- shareType(Platform.SHARE_EMOJI) title text(朋友圈不顯示此字段) imagePath
- shareType(Platform.SHARE_EMOJI) title text(朋友圈不顯示此字段) imageUrl
- shareType(Platform.SHARE_EMOJI) title text(朋友圈不顯示此字段) imageData
微信並無實際的分享網絡圖片和分享bitmap的功能,如果設置了網絡圖片,此圖片會先下載會本地,之後再當作本地圖片分享,因此延遲較大。bitmap則好一些,但是由於bitmap並不知道圖片的格式,因此都會被當作png編碼,再提交微信客戶端。此外,SHARE_EMOJI支持gif文件,但是如果使用imageData,則默認只是提交一個png圖片,因為bitmap是靜態圖片。
QQ分享支持圖文和音樂分享。
參數說明:
title:最多30個字符
text:最多40個字符
分享圖片:
- ImageUrl
- imagePath
分享鏈接:
- title titleUrl text imagePath
- title titleUrl text imageUrl
分享音頻:
- title titleUrl text imagePath musicUrl
- title titleUrl text imageUrl musicUrl
QQ分享圖文和音樂,在PC版本的QQ上可能只看到一條連接,因為PC版本的QQ只會對其白名單的連接作截圖,如果不在此名單中,則只是顯示連接而已. 如果只分享圖片在PC端看不到圖片的,只會顯示null,在手機端會顯示圖片和null字段。
信息分短信和彩信,如果設置了標題或者圖片,會直接當作彩信發送。發送信息的時候使用手機的信息軟件
分享文本:
- address title text
分享圖文:
- address title text imagePath imageUrl
分享文本:
- shareType(SHARE_TEXT) title text
分享圖片:
- shareType(SHARE_IMAGE) title text imagePath
- shareType(SHARE_IMAGE) title text imageUrl
- shareType(SHARE_IMAGE) title text imageData
分享網頁:
- shareType(SHARE_WEBPAGE) title text imagePath url(消息點擊後打開的頁面)
- shareType(SHARE_WEBPAGE) title text imageUrl url(消息點擊後打開的頁面)
- shareType(SHARE_WEBPAGE) title text imageData url(消息點擊後打開的頁面)
在apk中,有時候需要root權限,例如通過apk更新系統庫等system的文件等,避免升級固件,或者在apk中需要直接訪問某些設備等。下面是在apk中獲取root權限的
在Android應用的開發中,ListView是最常用的一個列表顯示控件,微博,聯系人啊,反正只要涉及多數據展示的情況,都會用到ListView(另外就是GridView
Android 通過Socket 和服務器通訊,是一種比較常用的通訊方式,時間比較緊,說下大致的思路,希望能幫到使用socket 進行通信的人(1)開啟一個線程發送消息&
ImageViewImageView,圖像視圖,直接繼承自View類,它的主要功能是用於顯示圖片,實際上它不僅僅可以用來顯示圖片,任何Drawable對象都可以使用Ima
Material Design引入了深度的UI元素。深入幫