1. 程式人生 > >Android app整合友盟微社群詳細步驟

Android app整合友盟微社群詳細步驟

引導語:現在Android app開發已經趨於更快速,功能更加豐富,執行更加優化方向發展,而且開發趨勢更趨向於單槍匹馬,在個人能力有限情況下,想要完成高階功能,只能用引入第三方的方法(目前市面上只有友盟做到了微社群功能)。
簡介:微社群是指APP內部的獨立的交流平臺,類似於qq空間或者新浪微博
步驟:
1.進入友盟微社群官網:
https://wsq.umeng.com/communities/pro/home/
2.註冊賬號以及開通管理社群平臺點選建立微社群
3.下載最新微社群Android版sdk
亮點來了

:在微社群的api中模糊的敘述瞭如何新增Jar包進微社群的步驟,由於內部包也是衝突的,所以我們新增的時候一定不要按照友盟微社群的官方坑爹文件來
步驟如下:
一.加入以下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引用檔案中的重複,需要大家細心剔除重複部分。最後上圖:

這裡寫圖片描述