日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 实现微信QQ分享以及第三方登录

發布時間:2025/5/22 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 实现微信QQ分享以及第三方登录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

集成準備

在微信開放平臺創建移動應用,輸入應用的信息,包括移動應用名稱,移動應用簡介,移動應用圖片信息,點擊下一步,選擇Android?應用,填寫信息提交審核。


獲取Appkey

集成【友盟+】SDK之前,您首先需要到 【友盟+】官網注冊并且添加新應用,獲得Appkey。

1、填寫應用基本信息,獲取AppKey

首先添加新應用,輸入應用名和選擇平臺信息,選擇應用類別,點擊提交冰獲取應用appKey,得到Android 唯一Appkey

2、下載SDK并去集成

找到?https://developer.umeng.com/sdk/android界面,選擇社會化分享 SDK,,點擊設置,選擇需要分享的平臺,點擊下載,下載解壓后,將common文件夾下的文件夾拷貝到項目中,再將share文件夾下的main文件夾以及platforms(選擇你想使用的平臺即可)和shareboard文件夾下對應的資源文件和jar放入你的工程。

3、添加回調Activity

微信

在包名目錄下創建wxapi文件夾,新建一個名為WXEntryActivity的activity繼承WXCallbackActivity。

支付寶

與微信相似,支付寶需要在包名目錄下創建apshare文件夾,然后建立一個ShareEntryActivity的類,繼承ShareCallbackActivity。

QQ與新浪

QQ與新浪不需要添加Activity,但需要在使用QQ分享或者授權的Activity中,添加

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); }

注意onActivityResult不可在fragment中實現,如果在fragment中調用登錄或分享,需要在fragment依賴的Activity中實現

4、配置Android Manifest XML

  • 微信:
<activityandroid:name=".wxapi.WXEntryActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:theme="@android:style/Theme.Translucent.NoTitleBar" />
  • qq(請注意將我們的qq appkey替換成您自己的qq appkey):
<activityandroid: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="tencentappkey" /></intent-filter></activity><activityandroid:name="com.tencent.connect.common.AssistActivity"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="orientation|keyboardHidden|screenSize"/>

5、權限添加

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" />

如果需要使用QQ純圖分享或避免其它平臺純圖分享的時候圖片不被壓縮,可以增加以下權限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

請查看你的build.gradle文件,如果?targetSdkVersion小于或等于22,可以忽略這一步,如果大于或等于23,需要做權限的動態申請:

其中123是requestcode,可以根據這個code判斷,用戶是否同意了授權。如果沒有同意,可以根據回調進行相應處理:

@Override public void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) {}

添加讀寫文件的權限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> if(Build.VERSION.SDK_INT>=23){String[] mPermissionList = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.CALL_PHONE,Manifest.permission.READ_LOGS,Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.SET_DEBUG_APP,Manifest.permission.SYSTEM_ALERT_WINDOW,Manifest.permission.GET_ACCOUNTS,Manifest.permission.WRITE_APN_SETTINGS};ActivityCompat.requestPermissions(this,mPermissionList,123);}

6、初始化設置

初始化需要在您的Application中調用我們的初始化接口:

private void initUMeng() {PlatformConfig.setWeixin("微信 id", "微信 secret");PlatformConfig.setQQZone("QQ id", "QQ key");// 一些分享配置UMShareConfig config = new UMShareConfig();config.isOpenShareEditActivity(true);config.isNeedAuthOnGetUserInfo(true);config.setSinaAuthType(UMShareConfig.AUTH_TYPE_SSO);UMShareAPI.get(getApplicationContext()).setShareConfig(config);}

U-Share基礎功能

分享

友盟分享分為兩種形式:

  • 使用分享面板的分享,用戶可以調用我們的打開分享面板的方法,點擊分享面板的對應平臺進行分享。
  • 不使用分享面板的分享,用戶可以自己寫分享按鈕,或者觸發事件,然后調用我們的分享方法,進行分享。簡而言之,直接分享就是在用戶自己的界面組件中插入分享行為,分享面板是打開我們寫好的一個界面組件,根據點擊事件進行分享。

分享(帶面板)

打開分享面板的代碼如下:

new ShareAction(MainActivity.this).withText("hello") .setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN).setCallback(umShareListener).open();

不帶面板

new ShareAction(MainActivity.this) .setPlatform(SHARE_MEDIA.QQ)//傳入平臺 .withText("hello")//分享內容 .setCallback(umShareListener)//回調監聽器 .share();

其中umShareListener為回調監聽,構建如下:

private UMShareListener shareListener = new UMShareListener() {/*** @descrption 分享開始的回調* @param platform 平臺類型*/@Overridepublic void onStart(SHARE_MEDIA platform) {}/*** @descrption 分享成功的回調* @param platform 平臺類型*/@Overridepublic void onResult(SHARE_MEDIA platform) {Toast.makeText(ShareDetailActivity.this,"成功了",Toast.LENGTH_LONG).show();}/*** @descrption 分享失敗的回調* @param platform 平臺類型* @param t 錯誤原因*/@Overridepublic void onError(SHARE_MEDIA platform, Throwable t) {Toast.makeText(ShareDetailActivity.this,"失敗"+t.getMessage(),Toast.LENGTH_LONG).show();}/*** @descrption 分享取消的回調* @param platform 平臺類型*/@Overridepublic void onCancel(SHARE_MEDIA platform) {Toast.makeText(ShareDetailActivity.this,"取消了",Toast.LENGTH_LONG).show();}};

更多的可以參照友盟文檔

https://developer.umeng.com/docs/66632/detail/66639

登錄功能

登錄使用(獲取微信QQ詳細信息,用戶名等):

img_qq.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {UMShareAPI.get(LoginActivity.this).getPlatformInfo(LoginActivity.this, SHARE_MEDIA.QQ, authListener);}});img_wechat.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {UMShareAPI.get(LoginActivity.this).getPlatformInfo(LoginActivity.this, SHARE_MEDIA.WEIXIN, authListener);}});UMAuthListener authListener = new UMAuthListener() {@Overridepublic void onStart(SHARE_MEDIA platform) {}@Overridepublic void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {String temp = "";for (String key : data.keySet()) {temp = temp + key + " : " + data.get(key) + "\n";}toastMsg(temp);}@Overridepublic void onError(SHARE_MEDIA platform, int action, Throwable t) {toastMsg("錯誤" + t.getMessage());}@Overridepublic void onCancel(SHARE_MEDIA platform, int action) {}};/*** 接收登錄返回數據** @param requestCode* @param resultCode* @param data*/@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);}

  

轉載于:https://www.cnblogs.com/chhom/p/4794524.html

總結

以上是生活随笔為你收集整理的Android 实现微信QQ分享以及第三方登录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。