您的位置:首页技术文章
文章详情页

详解android在mob平台实现qq登陆和分享

【字号: 日期:2022-06-04 16:05:38浏览:40作者:猪猪

个人感觉mob平台功能还是比较强大的,很多功能都可以通过他们平台来实现。

建议仔细观看每一个步骤,如果一个步骤没处理好,可能就会让你的这个功能无法实现。相信我一定可以成功的。废话少说,先看一下效果:

详解android在mob平台实现qq登陆和分享

1.在mob平台配置ShareSDK环境1.如何在mob平台创建应用

下面为我创建的应用,如图所示,我们选择接入的接口为ShareSDK

详解android在mob平台实现qq登陆和分享

2.获取你的App Key和App Secret(建议用自己的)

获取你先创建应用的App Key和App Secret,这里主要告诉你在哪里找App Key和App Secret,因为等下需要用到。

详解android在mob平台实现qq登陆和分享

3.点击SDK下载

详解android在mob平台实现qq登陆和分享

4.选择ShareSDK

详解android在mob平台实现qq登陆和分享

选择配置我们主要选择下方配置,然后点击保存配置(下面我会说明为什么只选择这些配置)

详解android在mob平台实现qq登陆和分享

5.点击下载,就会弹出下载提示

详解android在mob平台实现qq登陆和分享

6.关于为什么只选择这些配置?

可以从上图中看出,无论是QQ还微博,微信等都需要获取他们平台的appId和appKey。如果你直接使用平台的提供的appId和appKey是不能成功的。如果我想要实现这些功能,我们得先去那些平台获取他的appId和appKey。

详解android在mob平台实现qq登陆和分享

7.我创建的QQ开发者平台应用

下面是我创建成功的应用,说实话QQ的这个服务确实挺慢的,一般审核需要几天,可以是免费的原因吧。下面是创建应用的步骤。1.成为个人开发者。2.创建移动应用。

详解android在mob平台实现qq登陆和分享

2.把ShareSDK部署到android1.新建一个moudle或者project

这个就不细说,比较简单。

2.配置你的build.gradle(Project)文件

如图所示,添加如图代码:

详解android在mob平台实现qq登陆和分享

代码如下:

classpath 'com.mob.sdk:MobSDK:2018.0319.1724'3.配置你的build.gradle(Module)文件

1.首先加入如图代码

详解android在mob平台实现qq登陆和分享

根据你的情况选择:代码如下,因为我的版本是android studio 4.2最新版,加入方法如下:

id ’com.mob.sdk’

如果是其他android studio 3点多的版本,添加方法代码:

apply plugin:’com.mob.sdk’

2.其次加入下图代码

详解android在mob平台实现qq登陆和分享

加入代码如下(建议使用自己申请的appId和appKey,如果你使用的是我QQ申请的appId和appKey话,你是成功不了,关于为什么成功不了,我下面将会说明):

MobSDK {fp true //严格模式 } MobSDK {appKey '31c48ca47c70e'appSecret '2d7adbfcd73363bbbe41aeff60e41e4f'ShareSDK { loopShare true devInfo {SinaWeibo { appKey '568898243' appSecret '38a4f8204cc784f81f9f0daaf31e02e3' callbackUri 'http://www.sharesdk.cn'}QQ { appId '101906011' appKey '676d885e518445fed4d7d2341ff2d56f'}TencentWeibo { appKey '801307650' appSecret 'ae36f4ee3946e1cbb98d6965b0b2ff5c' callbackUri 'http://www.sharesdk.cn'}QZone { appId '100371282' appKey 'aed9b0303e3ed1e27bae87c33761161d'} }} }

3. 解释一下关于为什么成功不了

下面我创建的应用

详解android在mob平台实现qq登陆和分享

我们可以看一下在QQ平台创建的应用包名和应用签名如下

详解android在mob平台实现qq登陆和分享

然后我们在把他和我创建的android项目来对比一下:1.我的包名和他相同

详解android在mob平台实现qq登陆和分享

2.我们可以看一下我们的MD5是否相同第一步:如果查看你的项目的MD5找到图中的gradle

详解android在mob平台实现qq登陆和分享

点击图中红色圆圈处

详解android在mob平台实现qq登陆和分享

然后就可以查看MD5了

详解android在mob平台实现qq登陆和分享

第二步:将我的MD5的去掉’:号’,把大写改为小写,我们对比一下是相同的。

补充条件小彩蛋:如果你新建其他项目android项目的时候需要用到QQ的appId和appKey的话,你可以直接点击下图中的修改,修改你为你新项目的包名和MD5。

详解android在mob平台实现qq登陆和分享

即可直接进行修改

详解android在mob平台实现qq登陆和分享

4.配置你的AndroidManifest.xml文件

加入如图回调和权限。

详解android在mob平台实现qq登陆和分享

详解android在mob平台实现qq登陆和分享

代码如下:

权限:

<uses-permission android:name='android.permission.GET_TASKS' /> <uses-permission android:name='android.permission.INTERNET' /> <uses-permission android:name='android.permission.ACCESS_WIFI_STATE' /> <uses-permission android:name='android.permission.ACCESS_NETWORK_STATE' /> <uses-permission android:name='android.permission.CHANGE_WIFI_STATE' /> <uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE' /> <uses-permission android:name='android.permission.READ_PHONE_STATE' /> <uses-permission android:name='android.permission.MANAGE_ACCOUNTS'/> <uses-permission android:name='android.permission.GET_ACCOUNTS'/> <!-- 蓝牙分享所需的权限 --> <uses-permission android:name='android.permission.BLUETOOTH' /> <uses-permission android:name='android.permission.BLUETOOTH_ADMIN' />

回调代码:

<activity android:name='com.mob.tools.MobUIShell' android:theme='@android:style/Theme.Translucent.NoTitleBar' android:configChanges='keyboardHidden|orientation|screenSize' android:screenOrientation='portrait' android:windowSoftInputMode='stateHidden|adjustResize' tools:ignore='LockedOrientationActivity'> <!-- QQ和QQ空间分享 QQ登录的回调必须要配置的 --> <intent-filter> <data android:scheme='tencent101906011' /> <action android:name='android.intent.action.VIEW' /> <category android:name='android.intent.category.BROWSABLE' /> <category android:name='android.intent.category.DEFAULT' /> </intent-filter> <!-- 新浪微博客户端分享回调必须配置 --> <intent-filter> <action android:name='com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY' /> <category android:name='android.intent.category.DEFAULT' /> </intent-filter> </activity>

注意事项:记得把如图红色圆圈处的101906011改为你的QQ平台创建的应用申请的appId。

详解android在mob平台实现qq登陆和分享

5.配置activity.xml文件。

比较简单,主要添加几个控件用来接收数据

详解android在mob平台实现qq登陆和分享

代码如下

<?xml version='1.0' encoding='utf-8'?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:app='http://schemas.android.com/apk/res-auto' xmlns:tools='http://schemas.android.com/tools' android:layout_width='match_parent' android:layout_height='match_parent' tools:context='.MainActivity'> <TextViewandroid: android:layout_width='wrap_content'android:layout_height='wrap_content'android:layout_marginTop='24dp'android:text='名字'android:textSize='20sp'app:layout_constraintEnd_toEndOf='@+id/imageView'app:layout_constraintStart_toStartOf='@+id/imageView'app:layout_constraintTop_toBottomOf='@+id/imageView'></TextView> <Buttonandroid: android:layout_width='wrap_content'android:layout_height='wrap_content'android:layout_marginTop='340dp'android:text='QQ登录'app:layout_constraintEnd_toEndOf='parent'app:layout_constraintHorizontal_bias='0.476'app:layout_constraintStart_toStartOf='parent'app:layout_constraintTop_toTopOf='parent' /> <ImageViewandroid: android:layout_width='wrap_content'android:layout_height='wrap_content'android:layout_marginTop='56dp'android:src='https://www.haobala.com/bcjs/@mipmap/ic_launcher_round'app:layout_constraintEnd_toEndOf='parent'app:layout_constraintStart_toStartOf='parent'app:layout_constraintTop_toTopOf='parent' /> <TextViewandroid: android:layout_width='wrap_content'android:layout_height='wrap_content'android:layout_marginTop='24dp'android:text='性别'app:layout_constraintEnd_toEndOf='@+id/text'app:layout_constraintStart_toStartOf='@+id/text'app:layout_constraintTop_toBottomOf='@+id/text' /> <Buttonandroid: android:layout_width='wrap_content'android:layout_height='wrap_content'android:layout_marginTop='50dp'android:text='QQ分享'app:layout_constraintEnd_toEndOf='parent'app:layout_constraintStart_toStartOf='parent'app:layout_constraintTop_toBottomOf='@+id/button' /></androidx.constraintlayout.widget.ConstraintLayout>6.配置Activity.java文件1.记得把MobSDK.init里面的AppKey和AppSecret改为你自己申请你的。2.qq登录代码

Platform qq = ShareSDK.getPlatform(QQ.NAME);qq.SSOSetting(false); // 设置false表示使用SSO授权方式qq.authorize();thirdLoginId = qq.getDb().getUserId();name = qq.getDb().getUserName();image = qq.getDb().getUserIcon();sex = qq.getDb().getUserGender();Toast.makeText(MainActivity.this,'name='+image,Toast.LENGTH_LONG).show();TextView textView=findViewById(R.id.text);textView.setText(name);Log.e('Toast','image='+thirdLoginId);ImageView imageView=findViewById(R.id.imageView);Glide.with(MainActivity.this) .load(image) .into(imageView);TextView textView1=findViewById(R.id.textView);if(sex!=null){ if(sex=='m'){ sex= '男'; }else { sex='女'; }}textView1.setText(sex);

记得导入Glide依赖,因为获取的图片地址为网络图片地址

implementation ’com.github.bumptech.glide:glide:4.11.0’3.qq分享代码

OnekeyShare oks = new OnekeyShare();// title标题,微信、QQ和QQ空间等平台使用 oks.setTitle('分享');// titleUrl QQ和QQ空间跳转链接 oks.setTitleUrl('http://sharesdk.cn');// text是分享文本,所有平台都需要这个字段 oks.setText('我是分享文本');// setImageUrl是网络图片的url oks.setImageUrl('https://hmls.hfbank.com.cn/hfapp-api/9.png');// url在微信、Facebook等平台中使用 oks.setUrl('http://sharesdk.cn');// 启动分享GUI oks.show(MobSDK.getContext());4.总体代码

package com.example.mobsharetest;import androidx.appcompat.app.AppCompatActivity;import android.net.Uri;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import com.bumptech.glide.Glide;import com.mob.MobSDK;import org.w3c.dom.Text;import java.util.HashMap;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.tencent.qq.QQ;public class MainActivity extends AppCompatActivity { private Button button; private Button button2; String thirdLoginId; String name; String image; String sex; @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);MobSDK.init(this, '31c48ca47c70e','2d7adbfcd73363bbbe41aeff60e41e4f');MobSDK.submitPolicyGrantResult(true, null);button=findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {Platform qq = ShareSDK.getPlatform(QQ.NAME);qq.SSOSetting(false); // 设置false表示使用SSO授权方式qq.authorize();thirdLoginId = qq.getDb().getUserId();name = qq.getDb().getUserName();image = qq.getDb().getUserIcon();sex = qq.getDb().getUserGender();Toast.makeText(MainActivity.this,'name='+image,Toast.LENGTH_LONG).show();TextView textView=findViewById(R.id.text);textView.setText(name);Log.e('Toast','image='+thirdLoginId);ImageView imageView=findViewById(R.id.imageView);Glide.with(MainActivity.this).load(image).into(imageView);TextView textView1=findViewById(R.id.textView);if(sex!=null){ if(sex=='m'){sex= '男'; }else {sex='女'; }}textView1.setText(sex); }});button2=findViewById(R.id.button2);button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {OnekeyShare oks = new OnekeyShare();// title标题,微信、QQ和QQ空间等平台使用oks.setTitle('分享');// titleUrl QQ和QQ空间跳转链接oks.setTitleUrl('http://sharesdk.cn');// text是分享文本,所有平台都需要这个字段oks.setText('我是分享文本');// setImageUrl是网络图片的urloks.setImageUrl('https://hmls.hfbank.com.cn/hfapp-api/9.png');// url在微信、Facebook等平台中使用oks.setUrl('http://sharesdk.cn');// 启动分享GUIoks.show(MobSDK.getContext()); }}); }}

步骤有点复杂,因为这个功能确实比较难以实现,如果有什么问题的话,可以提出来,一不小心就写14000多个字了。

详解android在mob平台实现qq登陆和分享

以上就是详解android在mob平台实现qq登陆和分享的详细内容,更多关于android在mob平台qq登陆和分享的资料请关注好吧啦网其它相关文章!

标签: qq
相关文章: