发布网友 发布时间:2022-05-13 18:24
共1个回答
热心网友 时间:2023-08-01 06:32
由于第一次使用,所以需要先进行新浪授权,授权界面 下面开始介绍如何使用ShareSDK实现微博的分享功能(其他平台的类似) shareSDK传送门 在使用shareSDK之前,我们需要先到新浪微博的开放平台进行注册,获得appkey以及其他的信息 新浪微博开放平台传送门 下面图片中划掉的部分是要重点关注的 特别需要注意的是,下面的回调网址必须填写,而且在代码中有涉及,使用默认的即可 至此,开发之前的准备工作已经做好了,下面还是贴代码 首先看一下布局文件代码,很简单,只有一个按钮 06. 07. 12. 13. MainActivity.java packagecom.heli17.weiboonekeylogin; 002. 003.importjava.io.File; 004.importjava.io.FileOutputStream; 005.importjava.util.HashMap; 006. 007.importandroid.app.Activity; 008.importandroid.app.Notification; 009.importandroid.app.NotificationManager; 010.importandroid.app.PendingIntent; 011.importandroid.content.Context; 012.importandroid.content.Intent; 013.importandroid.graphics.Bitmap; 014.importandroid.graphics.Bitmap.CompressFormat; 015.importandroid.graphics.BitmapFactory; 016.importandroid.os.Bundle; 017.importandroid.os.Environment; 018.importandroid.os.Handler.Callback; 019.importandroid.os.Message; 020.importandroid.view.View; 021.importandroid.widget.Toast; 022.importcn.sharesdk.framework.Platform; 023.importcn.sharesdk.framework.PlatformActionListener; 024.importcn.sharesdk.framework.ShareSDK; 025.importcn.sharesdk.framework.utils.UIHandler; 026.importcn.sharesdk.onekeyshare.OnekeyShare; 027. 028.publicclassMainActivityextendsActivityimplementsPlatformActionListener, 029.Callback{ 030. 031.privatestaticfinalintMSG_TOAST=1; 032.privatestaticfinalintMSG_ACTION_CCALLBACK=2; 033.privatestaticfinalintMSG_CANCEL_NOTIFY=3; 034. 035.//sdcard中的图片名称 036.privatestaticfinalStringFILE_NAME="/share_pic.jpg"; 037.publicstaticStringTEST_IMAGE; 038. 039.@Override 040.publicbooleanhandleMessage(Messagemsg){ 041.switch(msg.what){ 042.caseMSG_TOAST:{ 043.Stringtext=String.valueOf(msg.obj); 044.Toast.makeText(MainActivity.this,text,Toast.LENGTH_SHORT).show(); 045.} 046.break; 047.caseMSG_ACTION_CCALLBACK:{ 048.switch(msg.arg1){ 049.case1://成功后发送Notification 050.showNotification(2000,"分享完成"); 051.break; 052.case2://失败后发送Notification 053.showNotification(2000,"分享失败"); 054.break; 055.case3://取消 056.showNotification(2000,"取消分享"); 057.break; 058.} 059.} 060.break; 061.caseMSG_CANCEL_NOTIFY: 062.NotificationManagernm=(NotificationManager)msg.obj; 063.if(nm!=null){ 064.nm.cancel(msg.arg1); 065.} 066.break; 067.} 068.returnfalse; 069.} 070. 071.@Override 072.protectedvoidonCreate(BundlesavedInstanceState){ 073.super.onCreate(savedInstanceState); 074.setContentView(R.layout.activity_main); 075.//初始化ShareSDK 076.ShareSDK.initSDK(this); 077.//初始化图片路径 078.newThread(){ 079.publicvoidrun(){ 080.initImagePath(); 081.} 082.}.start(); 083.} 084. 085.//一键分享的点击事件 086.publicvoidclick(Viewv){ 087.//实例化一个OnekeyShare对象 088.OnekeyShareoks=newOnekeyShare(); 089.//设置Notification的显示图标和显示文字 090.oks.setNotification(R.drawable.ic_launcher,"ShareSDKdemo"); 091.//设置短信地址或者是邮箱地址,如果没有可以不设置 092.oks.setAddress("12345678901"); 093.//分享内容的标题 094.oks.setTitle("分享内容的标题"); 095.//标题对应的网址,如果没有可以不设置 096.oks.setTitleUrl(""); 097.//设置分享的文本内容 098.oks.setText("分享的文本内容"); 099.//设置分享照片的本地路径,如果没有可以不设置 100.oks.setImagePath(MainActivity.TEST_IMAGE); 101.//设置分享照片的url地址,如果没有可以不设置 102.oks.setImageUrl("/imgs/sharesdk/content/2013/07/25/1374723172663.jpg"); 103.//微信和易信的分享的网络连接,如果没有可以不设置 104.oks.setUrl(""); 105.//人人平台特有的评论字段,如果没有可以不设置 106.oks.setComment("comment"); 107.//程序的名称或者是站点名称 108.oks.setSite("site"); 109.//程序的名称或者是站点名称的链接地址 110.oks.setSiteUrl(""); 111.//设置纬度 112.oks.setLatitude(23.122619f); 113.//设置精度 114.oks.setLongitude(113.372338f); 115.//设置是否是直接分享 116.oks.setSilent(false); 117.//显示 118.oks.show(MainActivity.this); 119.} 120. 121.privatevoidinitImagePath(){ 122.try{ 123.if(Environment.MEDIA_MOUNTED.equals(Environment 124..getExternalStorageState()) 125.&&Environment.getExternalStorageDirectory().exists()){ 126.TEST_IMAGE=Environment.getExternalStorageDirectory() 127..getAbsolutePath()+FILE_NAME; 128.}else{ 129.TEST_IMAGE=getApplication().getFilesDir().getAbsolutePath() 130.+FILE_NAME; 131.} 132.//创建图片文件夹 133.Filefile=newFile(TEST_IMAGE); 134.if(!file.exists()){ 135.file.createNewFile(); 136.Bitmappic=BitmapFactory.decodeResource(getResources(), 137.R.drawable.pic); 138.FileOutputStreamfos=newFileOutputStream(file); 139.pic.compress(CompressFormat.JPEG,100,fos); 140.fos.flush(); 141.fos.close(); 142.} 143.}catch(Throwablet){ 144.t.printStackTrace(); 145.TEST_IMAGE=null; 146.} 147.} 148. 149.@Override 150.protectedvoidonDestroy(){ 151.super.onDestroy(); 152.//在Activity中停止ShareSDK 153.ShareSDK.stopSDK(this); 154.} 155.