Android app整合友盟微社群詳細步驟
引導語:現在Android app開發已經趨於更快速,功能更加豐富,執行更加優化方向發展,而且開發趨勢更趨向於單槍匹馬,在個人能力有限情況下,想要完成高階功能,只能用引入第三方的方法(目前市面上只有友盟做到了微社群功能)。
簡介:微社群是指APP內部的獨立的交流平臺,類似於qq空間或者新浪微博
步驟:
1.進入友盟微社群官網:
https://wsq.umeng.com/communities/pro/home/
2.註冊賬號以及開通管理社群平臺點選建立微社群
3.下載最新微社群Android版sdk
亮點來了
步驟如下:
一.加入以下jar包:
1.httpmime-4.1.3.jar
2.libammsdk.jar(微信相關jar包)
3.open_sdk_r5509.jar
4.SocialSDK_QQZone_3.jar
5.SocialSDK_Sina.jar
6.SocialSDK_WeiXin_2.jar
7.umeng_activeandroid.jar
8.umeng_community_location.jar
9.umeng_community_sdk_core.jar
10.umeng_community_sdk_login.jar
11.umeng_community_share.jar
12.umeng_social_sdk.jar
13.weiboSDKCore_3.1.4.jar
備註:
除此之外的包便不是必要的,(如果你的專案中有V4包在gradle架構中,那麼只需要保留一個,如果你的專案中有相關微信支付,微信介面的jar包,那麼你只需要保留 libammsdk.jar(微信相關jar包))因為其中有幾個包相互有衝突,因此捨棄,至於相關定位,分享,第三方登入的依賴包均在上述包中。好!接下來把相關so庫檔案一併考入對應資料夾。
二:將所有依賴檔案(drawable的圖片,String的資料夾一一對應考入你的專案(注意String檔案中有重名了的引用String,在加入完成執行的時候在慢慢刪除))
三,選擇如下兩個資料夾,完整考入你的專案
說明:這是在官方文件中交代不清晰的地方,總讓人誤以為這兩個包是二者選其一的,其實真正的目錄應該是上圖的樣子。然後將二者包下面所有的
檔案統統考入你的專案中對應的資料夾下。
接著在ActivityManifest 中進行配置
<!-- 使用相機 -->
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<!-- 檢測網路狀態 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 獲取mac地址作為使用者的備用唯一標識 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 獲取使用者手機的IMEI,用來唯一的標識使用者 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 快取資源優先存入SDcard -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 允許應用程式聯網,以便向我們的伺服器端傳送資料 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 定位所需的許可權 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 推送相關的許可權 -->
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- QQ登入所需許可權 -->
<uses-permission android:name="android.permission.GET_TASKS" />
<!-- Required 一些系統要求的許可權,如訪問網路等 -->
<uses-permission android:name="com.mktou.android.permission.JPUSH_MESSAGE" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<!-- Optional for location -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<!-- sms免費簡訊 -->
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<application
android:name=".common.AppContext"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!--友盟社群-->
<!-- 微博版activity元件 start -->
<!-- 友盟App Key, 必須替換為您在友盟官網上申請到的. -->
<!--<meta-data-->
<!--android:name="UMENG_APPKEY"-->
<!--android:value="ccccccccccccccccc" >-->
<!--</meta-data>-->
<meta-data
android:name="UMENG_APPKEY"
android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" >
</meta-data>
<!-- 友盟推送的app secret, 如果不使用友盟推送可以刪除 -->
<!--<meta-data-->
<!--android:name="UMENG_MESSAGE_SECRET"-->
<!--android:value="a499504e1326471ef496c4e55cac9268" >-->
<!--</meta-data>-->
<meta-data
android:name="UMENG_MESSAGE_SECRET"
android:value="ab0ac7f61616d38ead8c03f2595e6fa6" >
</meta-data>
<!-- 微博版activity元件 start -->
<activity
android:name="com.umeng.comm.ui.activities.FindActivity"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="stateHidden|adjustResize" />
<!--使用者中心-->
<activity
android:name="com.umeng.commm.ui.activities.UserInfoActivity"
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name="com.umeng.comm.ui.activities.UserInfoActivity"
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name="com.umeng.common.ui.activities.TopicPickActivity"
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="stateHidden|adjustResize" />
<!--話題-->
<activity
android:name="com.umeng.comm.ui.activities.FeedsActivity"
android:alwaysRetainTaskState="true"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<!-- 話題詳情頁-->
<activity
android:name="com.umeng.comm.ui.activities.TopicDetailActivity"
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="stateHidden|adjustResize" />
<!-- 搜尋結果Activity -->
<activity
android:name="com.umeng.comm.ui.activities.RelativeUserActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<!--發表-->
<activity
android:name="com.umeng.comm.ui.activities.PostFeedActivity"
android:configChanges="orientation|keyboardHidden"
android:exported="true"
android:windowSoftInputMode="stateHidden|adjustResize" >
</activity>
<!--topic picker-->
<!-- 搜尋結果Activity -->
<activity
android:name="com.umeng.comm.ui.activities.RelativeUserActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<!-- forward-->
<activity
android:name="com.umeng.comm.ui.activities.ForwardActivity"
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="stateHidden|adjustResize" />
<!-- 搜尋Activity -->
<activity
android:name="com.umeng.comm.ui.activities.SearchActivity"
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="stateHidden|adjustResize" />
<!-- searchtopic -->
<activity
android:name="com.umeng.comm.ui.activities.SearchTopicActivity"
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="stateVisible|adjustResize" />
<!-- feed詳情頁面 -->
<activity
android:name="com.umeng.comm.ui.activities.FeedDetailActivity"
android:configChanges="orientation|keyboardHidden"
android:launchMode="singleTask"
android:windowSoftInputMode="stateHidden|adjustResize" />
<!-- guide-->
<activity
android:name="com.umeng.comm.ui.activities.GuideActivity"
android:configChanges="orientation|keyboardHidden"
android:launchMode="singleTask"
android:windowSoftInputMode="stateHidden|adjustResize" />
<!-- feed詳情頁面 -->
<!-- 設定頁面activity -->
<activity android:name="com.umeng.comm.ui.activities.SettingActivity" />
<activity android:name="com.umeng.common.ui.activities.SettingActivity" />
<!-- 引導頁面activity -->
<activity android:name="com.umeng.comm.ui.activities.GuideBaseActivity" />
<!-- 點贊使用者頁面 -->
<activity android:name="com.umeng.comm.ui.activities.LikeUsersActivity" />
<!-- 友盟登入介面 -->
<activity android:name="com.umeng.community.login.LoginActivity" />
<!-- 顯示某個位置Feed的Activity -->
<activity android:name="com.umeng.comm.ui.activities.LocationFeedActivity" />
<!-- ##################分享相關#################### -->
<!-- 分享內容編輯頁 -->
<activity
android:name="com.umeng.socialize.view.ShareActivity"
android:configChanges="orientation|keyboard"
android:launchMode="singleTask"
android:noHistory="true"
android:theme="@android:style/Theme.Dialog"
android:windowSoftInputMode="stateVisible|adjustResize" >
</activity>
<!-- 騰訊SSO授權的Activity註冊 -->
<activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent101135384" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity android:name="com.umeng.common.ui.activities.MessageChatActivity" />
<!-- 微信回撥activity -->
<activity
android:name="wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity android:name="com.umeng.common.ui.activities.AlbumActivity" />
<activity android:name="com.umeng.comm.ui.activities.FollowedTopicActivity" />
<activity android:name="com.umeng.comm.ui.activities.NotificationActivity" />
<activity android:name="com.umeng.comm.ui.activities.NewMsgActivity" />
<!-- 圖片選擇相關 -->
<activity android:name="com.umeng.common.ui.imagepicker.PhotoSelectorActivity" />
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="557e18d1afb32a69351be5abc7f1cd25" />
<activity
android:name="com.umeng.comm.ui.activities.BrowserActivity"
android:configChanges="keyboardHidden|orientation|screenSize" />
**注意:**如果沒有整合友盟推送需要登出
<!-- ##################### 推送相關 ##################### -->
<!--<receiver-->
<!--android:name="com.umeng.message.NotificationProxyBroadcastReceiver"-->
<!--android:exported="false"/>-->
<!--<receiver-->
<!--android:name="com.umeng.message.SystemReceiver"-->
<!--android:process=":push">-->
<!--<intent-filter>-->
<!--<action android:name="android.intent.action.BOOT_COMPLETED" />-->
<!--</intent-filter>-->
<!--<intent-filter>-->
<!--<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />-->
<!--</intent-filter>-->
<!--<intent-filter>-->
<!--<action android:name="android.intent.action.PACKAGE_REMOVED" />-->
<!--<data android:scheme="package" />-->
<!--</intent-filter>-->
<!--</receiver>-->
<!--<receiver-->
<!--android:name="com.umeng.message.MessageReceiver"-->
<!--android:exported="false"-->
<!--android:process=":push">-->
<!--<intent-filter>-->
<!--<action android:name="org.agoo.android.intent.action.RECEIVE" />-->
<!--</intent-filter>-->
<!--</receiver>-->
<!--<receiver-->
<!--android:name="com.umeng.message.ElectionReceiver"-->
<!--android:process=":push">-->
<!--<intent-filter>-->
<!--<action android:name="org.agoo.android.intent.action.ELECTION_RESULT_V4" />-->
<!--<category android:name="umeng" />-->
<!--</intent-filter>-->
<!--</receiver>-->
<!--<receiver-->
<!--android:name="com.umeng.message.RegistrationReceiver"-->
<!--android:exported="false">-->
<!--<intent-filter>-->
<!--<action android:name="com.umeng.community.example.intent.action.COMMAND" />-->
<!--</intent-filter>-->
<!--</receiver>-->
<!--<receiver android:name="com.umeng.message.UmengMessageBootReceiver">-->
<!--<intent-filter>-->
<!--<action android:name="android.intent.action.BOOT_COMPLETED" />-->
<!--</intent-filter>-->
<!--</receiver>-->
<!--<service-->
<!--android:name="com.umeng.message.UmengService"-->
<!--android:exported="true"-->
<!--android:label="PushService"-->
<!--android:process=":push">-->
<!--<intent-filter>-->
<!--<action android:name="com.umeng.community.example.intent.action.START" />-->
<!--</intent-filter>-->
<!--<intent-filter>-->
<!--<action android:name="com.umeng.community.example.intent.action.COCKROACH" />-->
<!--</intent-filter>-->
<!--<intent-filter>-->
<!--<action android:name="org.agoo.android.intent.action.PING_V4" />-->
<!--<category android:name="umeng" />-->
<!--</intent-filter>-->
<!--</service>-->
<!--<service-->
<!--android:name="com.umeng.message.UmengIntentService"-->
<!--android:process=":push" />-->
<!--<service-->
<!--android:name="com.umeng.message.UmengMessageIntentReceiverService"-->
<!--android:exported="true"-->
<!--android:process=":push">-->
<!--<intent-filter>-->
<!--<action android:name="org.android.agoo.client.MessageReceiverService" />-->
<!--</intent-filter>-->
<!--<intent-filter>-->
<!--<action android:name="org.android.agoo.client.ElectionReceiverService" />-->
<!--</intent-filter>-->
<!--</service>-->
<!--<service-->
<!--android:name="com.umeng.message.UmengMessageCallbackHandlerService"-->
<!--android:exported="false">-->
<!--<intent-filter>-->
<!--<action android:name="com.umeng.messge.registercallback.action" />-->
<!--</intent-filter>-->
<!--<intent-filter>-->
<!--<action android:name="com.umeng.message.unregistercallback.action" />-->
<!--</intent-filter>-->
<!--<intent-filter>-->
<!--<action android:name="com.umeng.message.message.handler.action" />-->
<!--</intent-filter>-->
<!--<intent-filter>-->
<!--<action android:name="com.umeng.message.autoupdate.handler.action" />-->
<!--</intent-filter>-->
<!--</service>-->
<!-- If you donot want to use the standard notification bar in SDK, you can define IntentService instead to handle message. -->
<!--<service-->
<!--android:name="com.umeng.message.UmengDownloadResourceService"-->
<!--android:exported="false" />-->
<!--<service-->
<!--android:name="com.umeng.message.local.UmengLocalNotificationService"-->
<!--android:exported="false" />-->
<!-- ###################分享相關Activity##################-->
<activity
android:name="com.umeng.socialize.view.ShareActivity"
android:configChanges="orientation|keyboard"
android:launchMode="singleTask"
android:noHistory="true"
android:theme="@android:style/Theme.Dialog"
android:windowSoftInputMode="stateVisible|adjustResize" >
</activity>
<!-- 點選連結時跳轉的Activity -->
<!--<activity-->
<!--android:name="BrowserActivity"-->
<!--android:configChanges="keyboardHidden|orientation|screenSize" />-->
<!-- 圖片選擇相關 -->
<!--<activity android:name="PhotoSelectorActivity" />-->
結束語:這樣的話,整合工作已經完成,那麼如何使用呢,就需要大家詳細閱讀友盟微社群Api官方文件,另外,友盟微社群中的初始化工作,最好建立在你的Application中進行
備註:友盟微社群本來就矛盾多多,尤其是有一些自己重複的部分,例如Style 中的重複,String引用檔案中的重複,需要大家細心剔除重複部分。最後上圖: