在Android Studio中利用shareSDK举行社会化分享澳门美高梅手机网站(图文教程)

1、标识符

【声明】 

    
用于命名程序的靶子,如方法名,变量名,规则是:

欢迎转载,但请保留作品原来出处→_→ 

  a、大小写敏感

生命壹号:http://www.cnblogs.com/smyhvae/

  b、由英文字符,文字字符,比索符号,下划线和数字构成,但无法以数字先河

作品来源:http://www.cnblogs.com/smyhvae/p/4585340.html

  c、不可能是非同小可字

 

2、%:求余运算符   
23%-4 结果为3,注:余数的记号与除数保持一致

【前言】

3、++i:先引用变量i,后再履行i+1赋值给i作为运算结果

明日的app当中,几乎都富含了社会化分享的功效,来两张图see 一 see:

     
i++:先实施i加1,然后再将结果赋值给i作为运算结果举行引用

澳门美高梅手机网站 1

4、数组的命名二种

澳门美高梅手机网站 2

  a、int 
intArray[ ];  intArray=new   int[5];

好在这种分享效率已经有第三方平台帮我们做好了,我们直接调用其SDK即可。市面上做社会化分享平台的可比好平台的有:mob等。

  b、int   
intArray[ ]=new   int[5];

后日大家就用mob的阳台做分享呢,官网地址是:http://www.mob.com/

  c、int  [
]  intArray={1,2,3,4,5};

澳门美高梅手机网站 3

  布尔数组的默认值为false,讲明数值时不可能平素指定数组的深浅,如boolean
[] b=new boolean[3]的写法是张冠李戴的。

何以?光看这多少个网站的首页就碉堡了呢?好了不赘述,进入正题。

5、String
为拍卖不可变字符串,StringBuff为拍卖可转移字符串

 

  字符串的章程:

开发条件:

  a、取字符串的子串 
substring       

IDE版本:Android Studio 1.2

    String 
substring(int
startpoint)
取字符串startpoint为先导下标至字符串结尾

物理机版本:Win7旗舰版(64位)

    String 
substring(int startpoint,int  endpoint)
取开端下标为startpoint,停止下标为endpoint-1

 

  b、相比较相等  
如s1.equals(s2)     正式的章程写法:boolean   equals(String 
s)

一、获取SDK并解压:

  c、s1.concat(s2) 
字符串连接

打开网站首页后,上图中的箭头处正是大家所需要的shareSDK。那大家就先将SDK下载下来呢。

  d、s1.startsWith(s2)
    s1.endsWith(s2)      s1和s2  前缀后缀的可比  
正规的章程写法:boolean   startsWith(String  s)

澳门美高梅手机网站 4

  e、字符串的长短  
length()

上图中,点击箭头处,举办下载。

  f、int 
indexOf(String  s)  从字符串的头起头查找第一次出现字符串s的岗位

澳门美高梅手机网站 5

      
int  indexOf(String   s,int  startpoint) 
从字符串startpoint的地方以后搜索重现字符串s的岗位,若没有寻找到重回-1

上图中的箭头处所示,我们需要的是Android的SDK,所以将其下载下来。

  g、前后去空格:trim()

澳门美高梅手机网站 6

  h、忽略大小写:boolean  
equalsIgnoreCase(String  s)

上图中,单机箭头处正式下载,弹出如下界面:

 6、在javaJDK的主题中,解析器所对应的可执行文件是:Java.exe

澳门美高梅手机网站 7

7、基本的数据类型

上图中,接纳大家所需要的社交平台展开下载呢,这里面,我选用:今日头条知乎、微信、QQ、QQ空间。

  字节型:byte  
占1个字节,8位

下载完了将来,解压,就是下边这么些样子:

  短整型:short 
占2个字节,16位

澳门美高梅手机网站 8

      
整型:int    占4个字节,32位

ShareSDK在“ShareSDK for
Android
”目录下,此目录中的“Libs”包含了“MainLibs”文件夹(大旨库)和“OnekeyShare”文件夹(急忙分享库)。截图如下:

     
长整型:long  占8个字节,64位

澳门美高梅手机网站 9

    
单精度:float    占4个字节,32位

“ShareSDK for Android
Service(Service)s”包含ShareSDK已经发布的“插件服务”,暂时只提供了“评论与赞”服务,我们不需要那些哈。

    
双精度:double   占8个字节,64位

 

8、Java语言的决定语句有3种:条件语句(if
,switch),循环语句(for,while,do….
while),转移语句(break,continue)

二、在ShareSDK官网举行挂号:

9、数组的宣示必须利用 
new
运算符分配内存空间

在官网注册账号获得ShareSDK的Appkey:

10、Java中接口默认的拜访权限都是
public

澳门美高梅手机网站 10

11、break和continue的区别

下一场采取使用名称和平台:

  break:强制中止当前巡回,从循环外的首先个语句继续执行

澳门美高梅手机网站 11

  continue:提前截止本次巡回,直接进去下一轮循环继续执行

运用创立成功后,效果如下:

12、应用程序和小应用程序的却别

澳门美高梅手机网站 12

  一个Java的应用程序必须有且只有一个类中带有main方法,那一个类成为应用程序的主类

上图中的App
Key要切记,因为我们稍后要用。

  一个Java 
Applet小应用程序不需要main主类,但不可能不有一个类扩充Applet类,即它是Applet的主类

单击红框部分的“应用音信”,可以添加一些音信,这多少个信息可有可无哈。

13、艺术重载:一个类中可以有三个艺术具有同样的名字,但方法的参数必须不同或参数的个数不同或参数的类别不同

 

  构造方法:方法名和类名一样,并且没有回来结果,也不写上void关键字;假设一个类没有定义构造方法,那么系统会默认增补一个并未参数的构造方法。

二、在各大社交平台注册:

14、Java中是怎么定义接口和接纳接口?

倘若你想享受到乐乎博客园,就非得在网易开放平莱比锡校以此app注册一下,不然乐乎是不会无故让你享受的;分享到微信和QQ的道理是同样的。

  使用紧要字interface定义接口

参照链接:

  一个类经过重点字implements阐明自己行使一个或多少个接口,虽然利用六个接口,则用逗号隔开,要是一个类应用某个接口,那么那多少个类必须兑现该接口的装有办法。

ShareSDK各社交平台申请APPkey
的网址及报名流程汇总:http://bbs.mob.com/forum.php?mod=viewthread&tid=275

15、简述java中使用this的情况

1、果壳网开放平台注册:

  a、通过this调用构造方法

参照链接:http://bbs.mob.com/thread-89-1-4.html

  b、在函数中引用该函数所属类的眼前目标时,直接用this

登陆天涯论坛开放平台:http://open.weibo.com/

  c、调用成员变量,this.成员变量(函数参数或函数中的局部变量或成员变量同名的状态下,成员变量北屏蔽,此时要拜访成员变量则需要用this调用
) 

图文操作如下:

16、StringTokenizer类

澳门美高梅手机网站 13

  StringTokenizer
(String s,String
delim)以字符串s构造一个分析器,以字符串参数delim中的字符作为分隔符,不定义默认为空格

澳门美高梅手机网站 14

 

澳门美高梅手机网站 15

 17、java.awt.event包用来检测对时间做出反应的模子包括六个结合要素:源对象、监视器对象、事件目的

澳门美高梅手机网站 16

18、Component
是图形界面的基本要素,是负有组件类的超类;

上图中,填好应用名称,选好“应用平台”(当然也足以同时勾选”中兴”,那样的话,android平台和ios平台就可以共用同一个appId了),然后单击“创造”即可。

19、java.awt包中定义了5中布局类,分别是FlowLayout、BorderLayout、CardLayout、GridLayout、GridBagLayout

澳门美高梅手机网站 17

20、在ChecBox中,getLabel方法是用来赢得接纳框标题的

上图中,单击左侧的“基本消息”,可以观察乐乎乐乎的App Key、App
Secret(红框部分),这一个信息稍后需要填到我们工程中的ShareSDK.xml中对应的<SinaWeibo>标签中去。

21、Java中要追加菜单分割线,只需要动用Menu类中的
addSeparator() ;

澳门美高梅手机网站 18

22、创制事件目的,使用ActionEvent

上图中,单击左边的“高级音讯”,然后填写红框部分的网址,填的那一个网址稍后需要填到我们工程中的ShareSDK.xml中对应的<SinaWeibo>标签的RedirectUrl属性中去。

23、改变近年来块的水蒲剧用Graphics类的getColor(
)
方法。

上图的网址中,需要填写一个方可打开的网址即可,比如这一个:http://www.baidu.com/

24、当图像信息较大时,为了避免现身斑驳现象,进步显示效果,许多应用程序都采纳
图像缓冲 技术;

,不然分享的时候很可能会报下边的谬误:

25、GradLayout布局的器皿可容纳对个零部件,不过四个零部件拥有一个展现空间,怎么样设置GardLayout布局及体现某一零部件

澳门美高梅手机网站 19

  设置GradLayout布局:

这一个错误可以参见上面这个链接:

  1)先创造GradLayout布局对象,然后使用setLayout()方法为容器设置GradLayout布局,最终调用容器的add方法将零件参加其中

  知乎网易error:redirect_uri_mismatch的缓解方法:http://bbs.mob.com/forum.php?mod=viewthread&tid=50

  呈现ring器中的某一组件有如下三种艺术:

关于微信开放平台、QQ空间开放品台的报名是近乎的,只但是微信开放平台的审核是亟需时日的。

  1)使用show(容器名、组件代号),指定某个容器中的某个组件呈现

另外需要验证的是:

  2)按组件参与容器的次第显示器件,即first(容器)、last(容器)、previous(容器)、next(容器)

  在虎扑博客园和QQ的开放平台注册的采纳,虽然审核不经过,也可以拿走AppKey进行分享;而微信开放平台申请的使用需要核对成功之后才能获得AppKey举办分享(我要好是等了一天的流年才拿到了app审核通过的打招呼)

26、如何处理滚动列表(List)上的风波?

 

  滚动列表可发生两种事件:双击和单机某项

2、微信开放平台注册:

  双击某项时,发生Action伊芙(Eve)nt事件,拿到事件监视器的措施是addActionListener(),处理事件的接口是ActionListener,接口中的方法是ActionPerformed(Action伊芙nt   
e),拿到该事件的事件源的不二法门是getSource();

我们需要在微信开放平台举行注册:http://open.weixin.qq.com/

  单机某项时,发生Hem伊芙(Eve)nt事件,得到事件监视器的主意是addHemListener(),处理事件的接口是HemListener,接口中的方法是itemStateChanged(Hem伊芙(Eve)nt   
e),得到该事件的事件源的措施是getHemSelectable();

澳门美高梅手机网站 20

 

参考链接:

27、咋样绘制封闭的多边形?

  微信开放平台申请流程:http://bbs.mob.com/thread-95-1-4.html

  使用Graphics中的drawpolygon(int   
xPoints[ ],int   yPoints[ ],int  
nPoints)方法,绘制封闭的大举形时,xPoints和yPoints表示的第一点和结尾一点不可以不一律

主干是要填“应用签名”,也就是下边这张图:(签名工具的apk安装包见附件)

28、在Applet中哪些播放声音?

澳门美高梅手机网站 21

  使用Applet中的一个静态方法
new  AudioClip(URL  url,String  
name)或Applet类的实例方法getAudioClip(URL  url,String
name)可得一个音频AudioClip的目的,通过该对象调用相应的主意即可播放音响,

 

29、如何设置组件的字体和颜料?

3、腾讯开放平台的登记:

  设置字体:用Font类创造一个字体对象,该对象表示一种字体通过组件对象名调用方法SetFont(Font 
f);

参照链接:

  设置颜色:用Color类成立三个颜色对象,表示两种颜色,一种颜色代表组件的前景观,另一种表示背景观,通过组件对象名调用SetBackground(Color  
c)可设置组件的背景观,通过调用方法SetForeground(Color  
c)可安装组件前景观

  腾讯开放平台申请流程:http://bbs.mob.com/thread-98-1-4.html

30、画一个三维矩形线框,矩形左上顶点(10,20)和右下顶点(50,40)

报名网址:http://open.qq.com/

  g.draw3DRect(10,20,40,20,true)

澳门美高梅手机网站 22

 

 

31、将语句块或方法设为同步使用的言辞是:synchronized

四、各类配置:

32、线程的生命周期中5个状态:新建状态、就绪状态、运行状态、阻塞状态、死亡意况

1、导入SDK到工程文件:

33、Java的8位字节数据流的读写需要运用的类分别是FileInputStream类和FileOutputStream类,它们分别是InputStream和OutputStream的子类

开辟Android Studio,先新建一个名为ShareDemo的project,然后起首导入sdk。

  16位Unicode字符数据流的读写操作需要动用的类分别是FileReader和FieWriter类。

这其中大家就毫无复制jar包的点子了,因为jar包不便于改源码。大家利用新建Library
module的章程来导入SDK
。当然了,即便您非要用复制jar包的不二法门来做,可以参见官方链接:http://mob.com/Index/mediaItem/id/158

34、构造方法RamdomAcessFile(File 
File,String
mode)文件擅自访问类,其中参数mode的取值为“r”或“rw”,定义了流的打开情势

还记得新建Library
module以及引用library的手续吗?不亮堂的话,可以去参考本人以前的博文:这里再度一下,新建一个module模式的第三方library的通用步骤是:

35、InetAddress类的靶子用于存储IP地址和域名,其中提供getHostName()艺术用于获取InetAddress对象的主机域名。

  • 新建一个library格局的module,删掉那多少个module中src/main目录里面的持有文件(包括删掉java、res、AndroidManifest.xml)
  • 复制第三方库的AndroidMainfest.xml、res、src文件(夹)到库目录的src/main目录中
  • 将src/main目录下的src目录重命名(Shift+F6)为java

36、端口号和IP地址的构成成为网络套接字,规定端口:0~1
023供系统专用,端口号1 024~65 535 供应用程序使用;

澳门美高梅手机网站 23

37、DriverManager类用来拍卖驱动程序的加载,并调用getConnection()静态方法建立数据库连接。

我们将上图中的四个工程文件新建为三个Library
module:ShareSDK和OneKeyShare,记得要将下边的这几个文件夹中的东西也要拷到MainLibs这多少个module的libs文件夹下:

38、Java实现多线程的章程有二种途径:

澳门美高梅手机网站 24

  1)继承Thread类表明Thread子类,在子类中开创线程对象;

下一场,需要留意的是,OneKeyShare这些module是凭借于ShareSDK这一个module;而app这一个module是依靠于OneKeyShare那多少个module

  2)在类中落实Runnable接口,在类中提供Runnable接口的run()方法;

 

 39、在打开文件对话框中,通过FileFilter类可以一向设置筛选标准,该类预设定了六个章程,分别是accept(File  
f)和getDescription()

2、添加应用音信:

 40、利用socket的构造方法,可以在客户端建立到服务器的套接字连接

先在app这多少个module(即我们以此类其余module)下新建一个assets文件夹(即第三方资金目录),操作如下:

41、JDBC是java数据库连接的API,他能完成三件事:与一个数据库建立连接,向数据库发送SQL语句,处理数据库再次来到的结果

澳门美高梅手机网站 25

42、Connection类是java.sql包中用于拍卖与特定数据库连接的类,Connection对象时用来表示数据库连接的目标

澳门美高梅手机网站 26

43、Java中多线程是怎么样调度的?

然后,我们将上图中的ShareSDK.xml文件复制到assets目录下。

 线程调度器负责线程的排队和处理器在线程间的分配,线程在优先级基础上依照先到先服务的口径,即一律优先级的线程按启动的先后顺序执行,高优先级线程先于低优先级线程

随着开首修改ShareSDK.xml文件中的代码。这里以天涯论坛搜狐为例:

44、为线程同步,线程中的方法wait(),notify()和notify
All()的效应是什么样?

 1     <ShareSDK
 2         AppKey = "修改成你在sharesdk后台注册的应用的appkey"/> 
 3  
 4     <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->
 5     <SinaWeibo
 6         Id="1"  (自定义字段,整型,用于您项目中对此平台的识别符)
 7         SortId="1"  (此平台在您分享列表中的位置,整型,数值越大越靠后)
 8         AppKey="568898243"  (填写您在新浪微博上注册到的AppKey)
 9         AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"  (填写您在新浪微博上注册到的AppSecret)
10         RedirectUrl="http://www.sharesdk.cn"  (填写您在新浪微博上注册的RedirectUrl)
11         ShareByAppClient="false"  (是否使用客户端进行分享)
12         Enable="true" />   (布尔值,标记此平台是否有效)

  wait():使本线程等待,允许任何线程使用该临界段

代码解释:

  notify():当线程使用完临界段后,用notify方法文告想拔取该临界段而处在等候的线程截止等待

    02行:还记得在此以前说过AppKey有用吗?那里就派上用场了,填上去就行了。

  notify
All():公告所有想行使该临界段而远在等候的线程截止,再一次使用这些合伙方法

   
08行:需要先事先在知乎和讯的开发者平台注册得到AppKey。也就是地点第三段中提到的情节。

45、创制一个File对象有哪两种构造方法?

    12行:固然不想用这个分享平台,可以将其安装为false。

  1)包含路径名的字符串

总结:

  2)含有路径名的字符串和包含文件名的字符串

ShareSDK的每一个阳台都装有SortId、Id、Enable字段,除此之外的字段(如新浪果壳网的AppKey、AppSecret、RedirectUrl、ShareByAppClient等字段)需要到目的平台上注册应用将来得到,请正确填写这几个字段的数额,否则ShareSDK不能成功授权,则连续的其余操作也将不能执行。

  3)一个意味着路径的文书和一个分包文件名的字符串

 

46、java.io包中封装的着力流类有那个?

3、配置AndroidManifest.xml:

  三个,包括:基于Unicode字符输入流Reader,输出流Writer,基于二进制字节输入流InputStream和出口流OutputStream

(1)添加如下权限:(和application节点并列)

47、如何用套接字建立五个程序间的通信?(套接字就是指socket)

    <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"/>

  1)用Socket类建立客户到服务器的套接字的目的:Socket(String
host,int  port)

  

  2)用ServerSocket建立接受客户套接字的服务器套接字对象:ServerSocket(int  
port)客户端与劳务器端的端口号相同

(2)在application节点下报了名下边的Activity:

  3)客户端服务器对象调用方法accept()接受客户的套接字

        <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" >
            <intent-filter>
                <data android:scheme="tencent1104646053" />
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

  成立客户端套接字对象、服务器端套接字对象和调用方法accept()都可能爆发IOException,所以需要一场展开拍卖

在意:
MobUIShell的门径是稳定的,一定要在“cn.sharesdk.framework”下,因为它在Share-Core中。

48、Java中行使什么点子与数据库交互?

后来,需要对上边的代码举行以下修改:

  可应用两种艺术:

澳门美高梅手机网站 27

  1)编写一个驱动程序接受JDBC调用,执行SQL对数据库的调用

上图中,将红框部分的数字改成在腾讯开放平台申请到的AppId即可。

  2)使用已存在的ODBC驱动程序,用JDBC-ODBC桥讲JDBC与ODBC连接起来

设若项目并入了微信,还索要添加以下WXEntryActivity,不然的话,mob后台无法做微信的分享总括:(在工程的包下新建wxapi目录再放置WXEntryActivity)

 49、Java源文件通过编译产生的文本成为字节码文本,使用的一声令下是javac

WXEntryActivity.java的代码如下:

50、倘若四个事件监听器被登记到一个组件上,那么些事件监听器一般都会起效果,但各个事件的拍卖顺序不确定。

 1 /*
 2  * 官网地站:http://www.mob.com
 3  * 技术支持QQ: 4006852216
 4  * 官方微信:ShareSDK   (如果发布新版本的话,我们将会第一时间通过微信将版本更新内容推送给您。如果使用过程中有任何问题,也可以通过微信与我们取得联系,我们将会在24小时内给予回复)
 5  *
 6  * Copyright (c) 2013年 mob.com. All rights reserved.
 7  */
 8 package com.smyhvae.sharedemo.wxapi;
 9 import android.content.Intent;
10 import android.widget.Toast;
11 import cn.sharesdk.wechat.utils.WXAppExtendObject;
12 import cn.sharesdk.wechat.utils.WXMediaMessage;
13 import cn.sharesdk.wechat.utils.WechatHandlerActivity;
14 /** 微信客户端回调activity示例 */
15 public class WXEntryActivity extends WechatHandlerActivity {
16     /**
17      * 处理微信发出的向第三方应用请求app message
18      * <p>
19      * 在微信客户端中的聊天页面有“添加工具”,可以将本应用的图标添加到其中
20      * 此后点击图标,下面的代码会被执行。Demo仅仅只是打开自己而已,但你可
21      * 做点其他的事情,包括根本不打开任何页面
22      */
23     public void onGetMessageFromWXReq(WXMediaMessage msg) {
24         Intent iLaunchMyself = getPackageManager().getLaunchIntentForPackage(getPackageName());
25         startActivity(iLaunchMyself);
26     }
27     /**
28      * 处理微信向第三方应用发起的消息
29      * <p>
30      * 此处用来接收从微信发送过来的消息,比方说本demo在wechatpage里面分享
31      * 应用时可以不分享应用文件,而分享一段应用的自定义信息。接受方的微信
32      * 客户端会通过这个方法,将这个信息发送回接收方手机上的本demo中,当作
33      * 回调。
34      * <p>
35      * 本Demo只是将信息展示出来,但你可做点其他的事情,而不仅仅只是Toast
36      */
37     public void onShowMessageFromWXReq(WXMediaMessage msg) {
38         if (msg != null && msg.mediaObject != null
39                 && (msg.mediaObject instanceof WXAppExtendObject)) {
40             WXAppExtendObject obj = (WXAppExtendObject) msg.mediaObject;
41             Toast.makeText(this, obj.extInfo, Toast.LENGTH_SHORT).show();
42         }
43     }
44 }

51、Java
Applet注明的init()方法的功用是:创办所急需的靶子,设置最先状态,装载图像,设置参数等

 

52、得到文本框的文书方法:setText(),获取文本框的始末的章程是getText()

再就是,在清单文件中展开宣示:

53、Statement类是java.sql包中用来在指定的总是中处理SQL语句的类。

        <!--微信分享回调-->
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"/>

54、在闭馆浏览器时,系统调用destroy()办法,截至小应用程序的人命,关闭线程,释放对象资源。

 

55、Java中事件源暴发事件时,监视器就活动调用执行被类实现的某部接口方法。

比方项目连续了易信,方法类似,这里就不贴出来了,现在谁还用易信啊,哈哈哈···

56、Java的网络API所提供的着力网络类,他们都蕴涵在Java.net包中。

 

57、Java运算符按职能分6种:算术运算符,逻辑运算符,关系运算符,位运算符,条件运算符,赋值运算符;

4、添加代码:

58、怎样会爆发成员变量的隐身和艺术的重写?

集成ShareSDK至少需要在五个职位添加代码,包括:

  1)子类的分子变量名和父类的分子变量名相同,则父类的积极分子变量无法被延续,此时称子类的成员变量隐藏了父类的成员变量。

(1)在项目的入口Activity,在其onCreate方法中插入上面的代码举办起首化:(这多少个艺术越早调用越好)

  2)子类定义了一个主意,这几个办法名,再次回到类型及参数个数跟父类某个方法完全相同,父类的方法被埋伏,即重写了父类的法子。

ShareSDK.initSDK(this);

59、线程:指程序中单个体系化的流控制

 

  多线程:一个程序中定义了三个线程同时运行,每个线程可以推行不用的天职

若果不在所有的ShareSDK的操作以前调用这行代码,就会抛出空指针异常。

60、在Graohics类中,提供哪两种文字输出方法?

(2)在类型出口Activity的onDestroy方法中第一行插入上面的代码:

  1)字符串输出方法:drawString ( String  string ,int x,int y)

ShareSDK.stopSDK(this);

  2)字符输出方法:drawChars(char   chars[ ],int  offset,int 
number, int x,int  y)

 上方这行代码会终止ShareSDK的总括功用并释放资源。假诺这行代码没有被调用,那么“应用启动次数”将会不标准,因为使用可能一向没有被关门过(注:这一行代码我要么没用到,不领会会促成怎么着实质性的结果)。

  3)字节输出方法:drawBytes(byte  bytes[ ],int  offset,int 
number, int x,int  y)

留神:initSDK是能够再度调用的,其实ShareSDK提议在不确定的时候调用这么些艺术来确保ShareSDK被正确起初化。而stopSDK一旦被调用了,就亟须再一次调用initSDK才能利用ShareSDK的效率,否则会冒出空指针非常。

61、访问数据库的Java程序需要利用的接口或类有:DriverManage、Connection、Statement类

在代码中调用此措施,即可打开一键分享功效拓展分享:

62、创设一个窗口,并且命名标题为心灵之窗,布局管理器为FlowLayout

 1 private void showShare() {
 2  ShareSDK.initSDK(this);
 3  OnekeyShare oks = new OnekeyShare();
 4  //关闭sso授权
 5  oks.disableSSOWhenAuthorize(); 
 6 // 分享时Notification的图标和文字  2.5.9以后的版本不调用此方法
 7  //oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name));
 8  // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
 9  oks.setTitle(getString(R.string.share));
10  // titleUrl是标题的网络链接,仅在人人网和QQ空间使用
11  oks.setTitleUrl("http://sharesdk.cn");
12  // text是分享文本,所有平台都需要这个字段
13  oks.setText("我是分享文本,啦啦啦~");
14  // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
15  oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
16  // url仅在微信(包括好友和朋友圈)中使用
17  oks.setUrl("http://sharesdk.cn");
18  // comment是我对这条分享的评论,仅在人人网和QQ空间使用
19  oks.setComment("我是测试评论文本");
20  // site是分享此内容的网站名称,仅在QQ空间使用
21  oks.setSite(getString(R.string.app_name));
22  // siteUrl是分享此内容的网站地址,仅在QQ空间使用
23  oks.setSiteUrl("http://sharesdk.cn");
24 // 启动分享GUI
25  oks.show(this);
26  }
JFrame    win = new   JFrame();
JDialog    myDialog = new  JDialog(win,"心灵之窗",true);
myDialog.setLayout(new   FlowLayout());

下边的这多少个代码是官方给的,实际项目中得以放在按钮的点击事件中,依据需要去填写。

 63、对话框类 
JOptionPane类 4类

代码解释:

  确认对话框:JOptionPane.showComfirmDialog(parent,”确认要剥离吗?”)

    14行:setText是索要分享的文书内容

  输入对话框:JOptionPane.showInputDialog(…)

    16行:setImagePath是内需分享的地面图片。(要是是在真机当中,需要经过api去拿sd卡的门路,即Environment.getExternalStorageDirectory()那多少个api)

  音信对话框:JOptionPane..showMessageDialog(…)

五、正式开班写代码:

  选项框:….

(1)activity_main.xml布局文件:

64、静态的主意必须调用静态的变量

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical"
              android:paddingBottom="@dimen/activity_vertical_margin"
              android:paddingLeft="@dimen/activity_horizontal_margin"
              android:paddingRight="@dimen/activity_horizontal_margin"
              android:paddingTop="@dimen/activity_vertical_margin"
              tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"/>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="分享按钮"/>

</LinearLayout>

65、switch前面括号内的表明式的品种只限于char,int,short和byte类型。

实质上就是加了个button按钮,用做分享的事件触发。

66、String是final类型的,不可能被子类继承

(2)ShareSDK.xml中和天涯论坛知乎、微信、QQ有关的安排:

67、’将IP地址和端口号的三结合合称为网络套接字;

微博和讯:

68、调用类方法Class.forName(String 
s)能创立JDBC-ODBC桥连接(数据库桥接器);

1    <SinaWeibo
2         AppKey="858316951"
3         AppSecret="52685221be9572d0fb99e35a7ba25364"
4         Enable="true"
5         Id="1"
6         RedirectUrl="http://www.baidu.com"
7         ShareByAppClient="true"
8         SortId="1"/>

69、一个类经过动用主要字 implements 讲明自己行使一个或两个接口;

02行和03行的AppKey和AppSecret要换成你协调在乐乎开放平台注册的信息。

70、Java把有Component类的子类或直接子类制造的对象变成一个零件。

06行:RedirectUrl里面的网址要改成可用的url地址,并且与乐乎开放平台的授权回调页的网址一致,也就是底下这多少个:(在第三段中曾经强调过了)

71、事件源必须运用 addActionListener()方法拿到监视器。

澳门美高梅手机网站 28

72、Java多线程使用中,调用 currentThread
方法可规定当前占有的CPU线程。

 

73、类名不可以运用紧要字命名,Java不援助多重继承,adstract和final不能而且修饰类;

07行:即使设置为true,这就会用知乎和讯的app来拓展分享操作;假设您从未设置乐乎乐乎的app,很可能会促成分享失利。假使设置为false,这就会用网页版的新浪和讯举办分享。

74、RandomAcessFile类中,read(byte  b [] ,int  s,int 
n)方法的效率及参数含义

微信和QQ的安排消息差不多,就不赘述了。

  从文件中读出多少字节存入到数组中,参数b为要存入的数组,s为存入数组的发端地方,n为读取的字节数或者直到相应流的末梢,并且重回实际已经读取的字节数。

 

75、控制声音的广播有哪3种办法?

(3)MainActivity.java:

  play()播放声音,loop()循环播放,stop()截止播放

 1 package com.smyhvae.sharedemo;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.view.View;
 6 import android.widget.Button;
 7 
 8 import cn.sharesdk.framework.ShareSDK;
 9 import cn.sharesdk.onekeyshare.OnekeyShare;
10 
11 
12 public class MainActivity extends Activity implements View.OnClickListener {
13 
14     private Button button1;
15 
16     @Override
17     protected void onCreate(Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19         setContentView(R.layout.activity_main);
20         button1 = (Button) findViewById(R.id.button1);
21         button1.setOnClickListener(this);
22     }
23 
24     //点击按钮,开始进行分享
25     @Override
26     public void onClick(View v) {
27         ShareSDK.initSDK(this);
28         OnekeyShare oks = new OnekeyShare();
29         //关闭sso授权
30         oks.disableSSOWhenAuthorize();
31 
32         // title标题:微信、QQ(新浪微博不需要标题)
33         oks.setTitle("我是分享标题");  //最多30个字符
34 
35         // text是分享文本:所有平台都需要这个字段
36         oks.setText("我是分享文本,啦啦啦~http://uestcbmi.com/");  //最多40个字符
37 
38         // imagePath是图片的本地路径:除Linked-In以外的平台都支持此参数
39         //oks.setImagePath(Environment.getExternalStorageDirectory() + "/meinv.jpg");//确保SDcard下面存在此张图片
40 
41         //网络图片的url:所有平台
42         oks.setImageUrl("http://7sby7r.com1.z0.glb.clouddn.com/CYSJ_02.jpg");//网络图片rul
43 
44         // url:仅在微信(包括好友和朋友圈)中使用
45         oks.setUrl("http://sharesdk.cn");   //网友点进链接后,可以看到分享的详情
46 
47         // Url:仅在QQ空间使用
48         oks.setTitleUrl("http://www.baidu.com");  //网友点进链接后,可以看到分享的详情
49 
50         // 启动分享GUI
51         oks.show(this);
52     }
53 }

76、

 第39行中,一旦不想用本地的图样,而是采取分享网络的图纸,可以将这一行去掉,改为第42行。

提拔:如若imagePath和imageUrl同时设有,imageUrl将被忽视。

 

六、运行效果:

1、分享到知乎博客园:(不接纳客户端举行分享的不二法门)

运行效果如下:

 澳门美高梅手机网站 29

 第一次分享时,系统会弹出页面让你填写您协调的天涯论坛乐乎账号,我先是次运行的时候曾经填写过了。

如今打开新浪和讯,分享成功了:

澳门美高梅手机网站 30

何以?你认为分享的图片太小了不够刺激?这一点开大图爽一下啊:(确实是分享成功了滴)

澳门美高梅手机网站 31

  • setText属性对应的是:“我是享受文本,啦啦啦~”
  • setImagePath属性对应的是亟需分享的图形,也就是上图中的大美人。

 

2、分享到天涯论坛知乎:(采取客户端进行分享的艺术)

运转之后,举办分享操作的界面如下:

澳门美高梅手机网站 32

分享成功之后的效应如下:

澳门美高梅手机网站 33

上图的左下角呈现的是说“来自未经过查处应用”,但偶尔会显示手机的名字,很想得到啊?咨询了刹那间合法客服(官方客服的解答太耐心了,感激涕零),情形是那般的:

要是不用客户端举行分享(即ShareByAppClient=”false”):

  app在和讯开放平台没通过审查,就会呈现“未经过审核拔取”

  app在天涯论坛开放平台通过了甄别,就会体现具体的app的名字

一经用客户端举行分享(即ShareByAppClient=”true”):

  app在果壳网开放平台没通过核对,就会显得“未经过查处接纳”或者手机型号

  app在乐乎开放平台通过了核查,呈现的是手机型号。效果如下:

澳门美高梅手机网站 34

3、分享到微信:

本身这边运用的是不绕过审核的不二法门来举行分享(即ShareSDK.xml中关于微信的局部中,BypassApproval=”false”)。一般也是选取这种措施展开分享的吗。到底要不要绕过,看官网博客便知:

   微信分享(相比及安排):http://mob.com/index.php/share/index/mediaItem/id/112

指示:记得要将转移签名的apk安装到手机,不然不可以享用到微信哦(好啊,仔细看微信开放平台的注册流程就行了)。

3.1  分享到微信好友:

澳门美高梅手机网站 35

澳门美高梅手机网站 36

留在微信后,效果如下:

澳门美高梅手机网站 37

3.2 分享到微信朋友圈:

澳门美高梅手机网站 38

澳门美高梅手机网站 39

4、分享到QQ、QQ空间:(和分享到微信的经过和界面一致)

运行效果:

4.1、分享到QQ好友:

澳门美高梅手机网站 40

澳门美高梅手机网站 41

澳门美高梅手机网站 42

澳门美高梅手机网站 43

4.2、分享到QQ空间:

澳门美高梅手机网站 44

澳门美高梅手机网站 45

澳门美高梅手机网站 46

动态效果图如下:

澳门美高梅手机网站 47

 

 

若果你还索要做一些分寸的调整,这就需要多看官方的事物了,这里贴出多少个链接:

官网博客: http://mob.com/index.php/share/index/media/cid/11

【ShareSDK】常见问题集中:http://bbs.mob.com/forum.php?mod=viewthread&tid=30&extra=page%3D1

 

【工程文件】

2015-06-18-ShareSDK做分享效用.rar

 

七、在onekeyshare那个Module中对分享界面举办略微修改:

是因为大家运用的是onekeyshare一键分享功效,于是分享界面在onekeyshare这多少个module中已经定制好了,现在可以展开多少的修改:

1、将每行四个享受按钮改为每行五个享受按钮:

澳门美高梅手机网站 48

这样的话,每排就是平素为六个享受按钮:

澳门美高梅手机网站 49

 

2、修改分享界面的背景:

可以在底下这多少个职务加背景:

澳门美高梅手机网站 50

上图中, 添加红框部分的代码即可。

 

八、完全自定义分享界面:

当今本身想自定义成下面的这样的界面:

澳门美高梅手机网站 51

 

此时,由于我们是一心自定义界面,所以我们在合龙的时候不需要集成onekeyshare模块(急速分享)。也就是说,大家只需要让app这些module依赖于ShareSDK那些module就行了。

关于自定义的享用按钮的布局,大家需要一个GridView

代码实现:

(1)share_item.xml:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3                 android:layout_width="fill_parent"
 4                 android:layout_height="wrap_content"
 5                 android:background="#00ffffff"
 6                 android:padding="30dp"
 7 
 8                 >
 9 
10     <ImageView
11         android:id="@+id/imageView1"
12         android:layout_width="wrap_content"
13         android:layout_height="30dp"
14         android:layout_alignParentTop="true"
15         android:layout_centerHorizontal="true"
16         android:src="@mipmap/ic_launcher"/>
17 
18     <TextView
19         android:id="@+id/textView1"
20         android:layout_width="wrap_content"
21         android:layout_height="wrap_content"
22         android:layout_below="@+id/imageView1"
23         android:layout_centerHorizontal="true"
24         android:layout_marginTop="2dp"
25         android:text="TextView"/>
26 
27 </RelativeLayout>

 

(2)share_dialog.xml:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3               android:layout_width="match_parent"
 4               android:layout_height="match_parent"
 5               android:background="#00ffffff"
 6               android:orientation="vertical">
 7 
 8     <GridView
 9         android:listSelector="@android:color/transparent"
10         android:id="@+id/share_gridView"
11         android:layout_width="match_parent"
12         android:layout_height="wrap_content"
13         android:background="@mipmap/share_bg"
14         android:gravity="center"
15         android:horizontalSpacing="1dp"
16         android:numColumns="2"
17         android:paddingBottom="10dp"
18         android:paddingTop="15dp"
19         android:paddingLeft="9dp"
20         android:paddingRight="8dp"
21         android:verticalSpacing="1dp">
22     </GridView>
23 
24 
25     <RelativeLayout
26         android:id="@+id/share_cancel"
27         android:layout_width="match_parent"
28         android:layout_height="wrap_content"
29         android:layout_marginBottom="15dp"
30         android:layout_marginLeft="4dp"
31         android:layout_marginRight="4dp"
32         android:layout_marginTop="10dp"
33         android:background="@mipmap/share_cancle"
34         android:gravity="center">
35 
36         <TextView
37             android:layout_width="wrap_content"
38             android:layout_height="wrap_content"
39             android:layout_alignParentTop="true"
40             android:layout_centerHorizontal="true"
41             android:layout_marginBottom="5dp"
42             android:layout_marginTop="5dp"
43             android:text="取消"
44             android:textColor="@color/home"
45             android:textSize="18sp"/>
46 
47     </RelativeLayout>
48 
49 </LinearLayout>

 

实在就是一个GridView和一个收回按钮。

为了达成UI上的意义,下面那五个布局文件的padding和margin我调了五个钟头。唉···

(3)ShareDialog.java:

 1 package com.smyhvae.sharedemo;
 2 
 3 import android.app.AlertDialog;
 4 import android.content.Context;
 5 import android.view.Gravity;
 6 import android.view.View.OnClickListener;
 7 import android.view.Window;
 8 import android.widget.AdapterView.OnItemClickListener;
 9 import android.widget.GridView;
10 import android.widget.RelativeLayout;
11 import android.widget.SimpleAdapter;
12 
13 import java.util.ArrayList;
14 import java.util.HashMap;
15 import java.util.List;
16 
17 public class ShareDialog {
18 
19     private AlertDialog dialog;
20     private GridView gridView;
21     private RelativeLayout cancelButton;
22     private SimpleAdapter saImageItems;
23     private int[] image = {R.mipmap.share_sina, R.mipmap.share_wechat, R.mipmap.share_wechat_moments, R.mipmap.share_qq};
24     private String[] name = {"微博", "微信好友", "朋友圈", "QQ"};
25 
26     public ShareDialog(Context context) {
27 
28         dialog = new AlertDialog.Builder(context).create();
29         dialog.show();
30         Window window = dialog.getWindow();
31         window.setGravity(Gravity.BOTTOM); // 非常重要:设置对话框弹出的位置
32         window.setContentView(R.layout.share_dialog);
33         gridView = (GridView) window.findViewById(R.id.share_gridView);
34         cancelButton = (RelativeLayout) window.findViewById(R.id.share_cancel);
35         List<HashMap<String, Object>> shareList = new ArrayList<HashMap<String, Object>>();
36         for (int i = 0; i < image.length; i++) {
37             HashMap<String, Object> map = new HashMap<String, Object>();
38             map.put("ItemImage", image[i]);//添加图像资源的ID
39             map.put("ItemText", name[i]);//按序号做ItemText
40             shareList.add(map);
41         }
42 
43         saImageItems = new SimpleAdapter(context, shareList, R.layout.share_item, new String[]{"ItemImage", "ItemText"}, new int[]{R.id.imageView1, R.id.textView1});
44         gridView.setAdapter(saImageItems);
45     }
46 
47     public void setCancelButtonOnClickListener(OnClickListener Listener) {
48         cancelButton.setOnClickListener(Listener);
49     }
50 
51     public void setOnItemClickListener(OnItemClickListener listener) {
52         gridView.setOnItemClickListener(listener);
53     }
54 
55 
56     /**
57      * 关闭对话框
58      */
59     public void dismiss() {
60         dialog.dismiss();
61     }
62 }

 

第31行是安装对话框弹出的地方。

(4)MainActivity.java:

  1 package com.smyhvae.sharedemo;
  2 
  3 import android.app.Activity;
  4 import android.os.Bundle;
  5 import android.os.Handler;
  6 import android.os.Message;
  7 import android.view.View;
  8 import android.widget.AdapterView;
  9 import android.widget.Button;
 10 import android.widget.Toast;
 11 
 12 import java.util.HashMap;
 13 
 14 import cn.sharesdk.framework.Platform;
 15 import cn.sharesdk.framework.Platform.ShareParams;
 16 import cn.sharesdk.framework.PlatformActionListener;
 17 import cn.sharesdk.framework.ShareSDK;
 18 import cn.sharesdk.sina.weibo.SinaWeibo;
 19 import cn.sharesdk.tencent.qq.QQ;
 20 import cn.sharesdk.wechat.friends.Wechat;
 21 import cn.sharesdk.wechat.moments.WechatMoments;
 22 
 23 
 24 public class MainActivity extends Activity implements View.OnClickListener,
 25         PlatformActionListener {
 26 
 27     private Button shareButton;
 28     ShareDialog shareDialog;
 29 
 30     @Override
 31     protected void onCreate(Bundle savedInstanceState) {
 32         super.onCreate(savedInstanceState);
 33         setContentView(R.layout.activity_main);
 34         initView();
 35         //1、分享的初始化
 36         ShareSDK.initSDK(this);
 37     }
 38 
 39     private void initView() {
 40         shareButton = (Button) findViewById(R.id.shareButton);
 41         shareButton.setOnClickListener(this);
 42     }
 43 
 44     @Override
 45     public void onClick(View v) {
 46         switch (v.getId()) {
 47             case R.id.shareButton:
 48                 shareDialog = new ShareDialog(this);
 49                 shareDialog.setCancelButtonOnClickListener(new View.OnClickListener() {
 50 
 51                     @Override
 52                     public void onClick(View v) {
 53                         shareDialog.dismiss();
 54 
 55                     }
 56                 });
 57                 shareDialog.setOnItemClickListener(new AdapterView.OnItemClickListener() {
 58 
 59                     @Override
 60                     public void onItemClick(AdapterView<?> arg0, View arg1,
 61                                             int arg2, long arg3) {
 62                         HashMap<String, Object> item = (HashMap<String, Object>) arg0.getItemAtPosition(arg2);
 63                         if (item.get("ItemText").equals("微博")) {
 64 
 65                             //2、设置分享内容
 66                             ShareParams sp = new ShareParams();
 67                             sp.setText("我是分享文本,啦啦啦~http://uestcbmi.com/"); //分享文本
 68                             sp.setImageUrl("http://7sby7r.com1.z0.glb.clouddn.com/CYSJ_02.jpg");//网络图片rul
 69 
 70                             //3、非常重要:获取平台对象
 71                             Platform sinaWeibo = ShareSDK.getPlatform(SinaWeibo.NAME);
 72                             sinaWeibo.setPlatformActionListener(MainActivity.this); // 设置分享事件回调
 73                             // 执行分享
 74                             sinaWeibo.share(sp);
 75 
 76                         } else if (item.get("ItemText").equals("微信好友")) {
 77                             Toast.makeText(MainActivity.this, "您点中了" + item.get("ItemText"), Toast.LENGTH_LONG).show();
 78 
 79                             //2、设置分享内容
 80                             ShareParams sp = new ShareParams();
 81                             sp.setShareType(Platform.SHARE_WEBPAGE);//非常重要:一定要设置分享属性
 82                             sp.setTitle("我是分享标题");  //分享标题
 83                             sp.setText("我是分享文本,啦啦啦~http://uestcbmi.com/");   //分享文本
 84                             sp.setImageUrl("http://7sby7r.com1.z0.glb.clouddn.com/CYSJ_02.jpg");//网络图片rul
 85                             sp.setUrl("http://sharesdk.cn");   //网友点进链接后,可以看到分享的详情
 86 
 87                             //3、非常重要:获取平台对象
 88                             Platform wechat = ShareSDK.getPlatform(Wechat.NAME);
 89                             wechat.setPlatformActionListener(MainActivity.this); // 设置分享事件回调
 90                             // 执行分享
 91                             wechat.share(sp);
 92 
 93 
 94                         } else if (item.get("ItemText").equals("朋友圈")) {
 95                             //2、设置分享内容
 96                             ShareParams sp = new ShareParams();
 97                             sp.setShareType(Platform.SHARE_WEBPAGE); //非常重要:一定要设置分享属性
 98                             sp.setTitle("我是分享标题");  //分享标题
 99                             sp.setText("我是分享文本,啦啦啦~http://uestcbmi.com/");   //分享文本
100                             sp.setImageUrl("http://7sby7r.com1.z0.glb.clouddn.com/CYSJ_02.jpg");//网络图片rul
101                             sp.setUrl("http://sharesdk.cn");   //网友点进链接后,可以看到分享的详情
102 
103                             //3、非常重要:获取平台对象
104                             Platform wechatMoments = ShareSDK.getPlatform(WechatMoments.NAME);
105                             wechatMoments.setPlatformActionListener(MainActivity.this); // 设置分享事件回调
106                             // 执行分享
107                             wechatMoments.share(sp);
108 
109                         } else if (item.get("ItemText").equals("QQ")) {
110                             //2、设置分享内容
111                             ShareParams sp = new ShareParams();
112                             sp.setTitle("我是分享标题");
113                             sp.setText("我是分享文本,啦啦啦~http://uestcbmi.com/");
114                             sp.setImageUrl("http://7sby7r.com1.z0.glb.clouddn.com/CYSJ_02.jpg");//网络图片rul
115                             sp.setTitleUrl("http://www.baidu.com");  //网友点进链接后,可以看到分享的详情
116                             //3、非常重要:获取平台对象
117                             Platform qq = ShareSDK.getPlatform(QQ.NAME);
118                             qq.setPlatformActionListener(MainActivity.this); // 设置分享事件回调
119                             // 执行分享
120                             qq.share(sp);
121 
122                         }
123 
124 
125                         shareDialog.dismiss();
126 
127                     }
128                 });
129 
130                 break;
131 
132             default:
133                 break;
134         }
135 
136     }
137 
138     @Override
139     public void onCancel(Platform arg0, int arg1) {//回调的地方是子线程,进行UI操作要用handle处理
140         handler.sendEmptyMessage(5);
141 
142     }
143 
144     @Override
145     public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {//回调的地方是子线程,进行UI操作要用handle处理
146         if (arg0.getName().equals(SinaWeibo.NAME)) {// 判断成功的平台是不是新浪微博
147             handler.sendEmptyMessage(1);
148         } else if (arg0.getName().equals(Wechat.NAME)) {
149             handler.sendEmptyMessage(1);
150         } else if (arg0.getName().equals(WechatMoments.NAME)) {
151             handler.sendEmptyMessage(3);
152         } else if (arg0.getName().equals(QQ.NAME)) {
153             handler.sendEmptyMessage(4);
154         }
155 
156     }
157 
158     @Override
159     public void onError(Platform arg0, int arg1, Throwable arg2) {//回调的地方是子线程,进行UI操作要用handle处理
160         arg2.printStackTrace();
161         Message msg = new Message();
162         msg.what = 6;
163         msg.obj = arg2.getMessage();
164         handler.sendMessage(msg);
165     }
166 
167     Handler handler = new Handler() {
168 
169         @Override
170         public void handleMessage(Message msg) {
171             switch (msg.what) {
172                 case 1:
173                     Toast.makeText(getApplicationContext(), "微博分享成功", Toast.LENGTH_LONG).show();
174                     break;
175 
176                 case 2:
177                     Toast.makeText(getApplicationContext(), "微信分享成功", Toast.LENGTH_LONG).show();
178                     break;
179                 case 3:
180                     Toast.makeText(getApplicationContext(), "朋友圈分享成功", Toast.LENGTH_LONG).show();
181                     break;
182                 case 4:
183                     Toast.makeText(getApplicationContext(), "QQ分享成功", Toast.LENGTH_LONG).show();
184                     break;
185 
186                 case 5:
187                     Toast.makeText(getApplicationContext(), "取消分享", Toast.LENGTH_LONG).show();
188                     break;
189                 case 6:
190                     Toast.makeText(getApplicationContext(), "分享失败啊" + msg.obj, Toast.LENGTH_LONG).show();
191                     break;
192 
193                 default:
194                     break;
195             }
196         }
197 
198     };
199 
200 }

 

若果是分享到微信和情侣圈,那么第81行和第97行一定无法少啊,不然分享失利。

运行效果:

澳门美高梅手机网站 52

【工程文件】

2015-06-20-ShareDemo.rar

 

参考链接:

  ShareSDK自定义界面+仿微博视频弹窗分享详解:http://bbs.mob.com/forum.php?mod=viewthread&tid=3374

 

2015-11-17-备注:

本身付出的app已经上线了,不过客户要求说app要改名字,难以置信。毕竟app涉及到分享功能,所以改起来相比较费心。

享受这一头要做的修改是:

1、网易平台,可以直接在原来的运用中修改名字,然后交到审查。

2、微信平台,需要重新新建应用,然后交给审查。

3、腾讯平台:即便在原先的施用中改名字相比较费心,依然再次新建应用吧。

 

 

自己的众生号

想学习代码之外的软技能?不妨关注自己的微信公众号:生命团队(id:vitateam)。

扫一扫,你将发现另一个全新的社会风气,而这将是一场美观的竟然:

 

澳门美高梅手机网站 53

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注