友盟分享

配置清單

<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" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>


<!--明確引用org.apache.http.legacy庫询筏,避免QQ官方open sdk在Android 9上報(bào)錯(cuò) -->

<uses-library android:name="org.apache.http.legacy" android:required="false"/>



<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="tencent101921073" /> </intent-filter></activity><activity android:name="com.tencent.connect.common.AssistActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="orientation|keyboardHidden"/><provider android:authorities="com.gy.myapplication.fileprovider" android:name="androidx.core.content.FileProvider" android:exported="false" android:grantUriPermissions="true" > <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"/></provider>


<paths> <external-files-path name="opensdk_external" path="Images/tmp"/> <root-path name="opensdk_root" path=""/></paths>

在build。gradel添加依賴

defaultConfig{

添加????manifestPlaceholders= [qqappid:"101921073"]

}


添加依賴包
implementation files('libs/umeng-asms-v1.1.4.aar'// asms包依賴(必選)

implementation'com.umeng.umsdk:common:9.3.3'

implementation'com.umeng.umsdk:share-core:7.1.3'

implementation'com.umeng.umsdk:share-board:7.1.3'

implementation'com.umeng.umsdk:share-qq:7.1.3'

implementation'com.umeng.umsdk:share-sina:7.1.3'

implementation'com.sina.weibo.sdk:core:4.4.3:openDefaultRelease@aar'

在另外一個(gè)build.gradle中添加依賴

repositories{

maven{ url'https://dl.bintray.com/umsdk/release' }

? ? maven{ url"https://dl.bintray.com/thelasterstar/maven/" }

}

allprojects{

????????maven{ url'https://dl.bintray.com/umsdk/release' }

? ? ? ? maven{ url"https://dl.bintray.com/thelasterstar/maven/" }

}

}

在proguard--rules中添加混淆文件


-dontshrink

-dontoptimize

-dontwarncom.google.android.maps.**

-dontwarnandroid.webkit.WebView

-dontwarncom.umeng.**

-dontwarncom.tencent.weibo.sdk.**

-dontwarncom.facebook.**

-keep public classjavax.**

-keep public classandroid.webkit.**

-dontwarnandroid.support.v4.**

-keep enumcom.facebook.**

-keepattributesExceptions,InnerClasses,Signature

-keepattributes*Annotation*

-keepattributesSourceFile,LineNumberTable

-keep public interfacecom.facebook.**

-keep public interfacecom.tencent.**

-keep public interfacecom.umeng.socialize.**

-keep public interfacecom.umeng.socialize.sensor.**

-keep public interfacecom.umeng.scrshot.**

-keep public classcom.umeng.socialize.* {*;}

-keep classcom.umeng.** {*;}

-keep classcom.facebook.**

-keep classcom.facebook.** {*;}

-keep classcom.umeng.scrshot.**

-keep public classcom.tencent.** {*;}

-keep classcom.umeng.socialize.sensor.**

-keep classcom.umeng.socialize.handler.**

-keep classcom.umeng.socialize.handler.*

-keep classcom.umeng.weixin.handler.**

-keep classcom.umeng.weixin.handler.*

-keep classcom.umeng.qq.handler.**

-keep classcom.umeng.qq.handler.*

-keep classUMMoreHandler{*;}

-keep classcom.tencent.mm.sdk.modelmsg.WXMediaMessage {*;}

-keep classcom.tencent.mm.sdk.modelmsg.** implementscom.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;}

-keep classim.yixin.sdk.api.YXMessage {*;}

-keep classim.yixin.sdk.api.** implementsim.yixin.sdk.api.YXMessage$YXMessageData{*;}

-keep classcom.tencent.mm.sdk.** {

*;

}

-keep classcom.tencent.mm.opensdk.** {

*;

}

-keep classcom.tencent.wxop.** {

*;

}

-keep classcom.tencent.mm.sdk.** {

*;

}

-keep classcom.twitter.** { *; }

-keep classcom.tencent.** {*;}

-dontwarncom.tencent.**

-keep classcom.kakao.** {*;}

-dontwarncom.kakao.**

-keep public classcom.umeng.com.umeng.soexample.R$*{

public static final int *;

}

-keep public classcom.linkedin.android.mobilesdk.R$*{

public static final int *;

}

-keepclassmembers enum * {

public static **[]values();

public static **valueOf(java.lang.String);

}

-keep classcom.tencent.open.TDialog$*

-keep classcom.tencent.open.TDialog$* {*;}

-keep classcom.tencent.open.PKDialog

-keep classcom.tencent.open.PKDialog {*;}

-keep classcom.tencent.open.PKDialog$*

-keep classcom.tencent.open.PKDialog$* {*;}

-keep classcom.umeng.socialize.impl.ImageImpl {*;}

-keep classcom.sina.** {*;}

-dontwarncom.sina.**

-keep classcom.alipay.share.sdk.** {

*;

}

-keepnames class * implementsandroid.os.Parcelable {

public static final **CREATOR;

}

-keep classcom.linkedin.** { *; }

-keep classcom.android.dingtalk.share.ddsharemodule.** { *; }

-keepattributesSignature


MainActivity主頁面點(diǎn)擊按鈕彈出分享

@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); PermissionMgr.getInstance().onRequestPermissionsResult(this, requestCode, permissions, grantResults);}

public void share() { UMImage image = new UMImage(MainActivity.this, "http://ww4.sinaimg.cn/large/610dc034jw1f2uyg3nvq7j20gy0p6myx.jpg");//網(wǎng)絡(luò)圖片 image.setThumb(new UMImage(MainActivity.this, R.mipmap.ic_launcher_round)); new ShareAction(MainActivity.this).withText("這是分享奧斯卡獎(jiǎng)地方").withMedia(image).setDisplayList(SHARE_MEDIA.SINA, SHARE_MEDIA.QQ) .setCallback(umShareListener).open();}public UMShareListener umShareListener = new UMShareListener() { @Override public void onStart(SHARE_MEDIA share_media) { Toast.makeText(MainActivity.this, "開始分享", Toast.LENGTH_SHORT).show(); } @Override public void onResult(SHARE_MEDIA share_media) { Toast.makeText(MainActivity.this, "分享結(jié)果", Toast.LENGTH_SHORT).show(); } @Override public void onError(SHARE_MEDIA share_media, Throwable throwable) { Toast.makeText(MainActivity.this, "開始失敗" + throwable.getMessage(), Toast.LENGTH_SHORT).show(); } @Override public void onCancel(SHARE_MEDIA share_media) { Toast.makeText(MainActivity.this, "分享取消", Toast.LENGTH_SHORT).show(); }};@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);}




PermissionMgr 這個(gè)權(quán)限類

private static final PermissionMgr sInstance =new PermissionMgr();

private static final int PERMISSION_REQUEST_CODE =1;

private static final String[]PERMISSIONS =new String[] {

android.Manifest.permission.INTERNET,

android.Manifest.permission.ACCESS_NETWORK_STATE,

Manifest.permission.READ_EXTERNAL_STORAGE,

android.Manifest.permission.ACCESS_WIFI_STATE,

android.Manifest.permission.WRITE_EXTERNAL_STORAGE};

private ListmPermissionList =new ArrayList();

private PermissionMgr() {}

public static PermissionMgr getInstance() {

return sInstance;

}

public void requestPermissions(Activity context) {

if (Build.VERSION.SDK_INT

return;

}

mPermissionList.clear();

for (String permission :PERMISSIONS) {

if (ActivityCompat.checkSelfPermission(context,permission) !=PERMISSION_GRANTED) {

mPermissionList.add(permission);

}

}

if (mPermissionList.size() >0) {

ActivityCompat.requestPermissions(context,mPermissionList.toArray(new String[]{}),PERMISSION_REQUEST_CODE);

}

}

public void onRequestPermissionsResult(Activity activity,int requestCode,String[] permissions,int[] grantResults) {

if (Build.VERSION.SDK_INT

return;

}

if (PERMISSION_REQUEST_CODE != requestCode) {

return;

}

for (int i =0; i < grantResults.length; i++) {

if (grantResults[i] ==PERMISSION_GRANTED) {

mPermissionList.remove(permissions[i]);

}

}

if (mPermissionList.isEmpty()) {

return;

}

if (showConfirmDialog(activity)) {

requestPermissions(activity);

return;

}

askForPermission(activity);

}

private boolean showConfirmDialog(Activity activity) {

if (Build.VERSION.SDK_INT

return false;

}

for (String permission :mPermissionList) {

// 還可以彈框確認(rèn)

? ? ? ? if (activity.shouldShowRequestPermissionRationale(permission)) {

return true;

}

}

return false;

}

private void askForPermission(final Activity activity) {

AlertDialog.Builder builder =new AlertDialog.Builder(activity);

builder.setTitle("Need Permission!");

builder.setPositiveButton("Settings",new DialogInterface.OnClickListener() {

@Override

? ? ? ? public void onClick(DialogInterface dialog,int which) {

Intent intent =new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);

intent.setData(Uri.parse("package:" +activity.getPackageName()));// 根據(jù)包名打開對(duì)應(yīng)的設(shè)置界面

? ? ? ? ? ? activity.startActivity(intent);

}

});

builder.setCancelable(false);

builder.create().show();

}

MyApplication配置類?

@Override

public void onCreate() {

super.onCreate();

UMConfigure.init(this,"5fe15d17345b8b53f575e1e5"

? ? ? ? ? ? ,"umeng",UMConfigure.DEVICE_TYPE_PHONE,"");//58edcfeb310c93091c000be2 5965ee00734be40b580001a0

? ? // QQ設(shè)置

? ? PlatformConfig.setQQZone("101921073","38a314d9c8acadf3d3fe056cf908a2ad");

PlatformConfig.setQQFileProvider("com.gy.myapplication.fileprovider");

// 其他平臺(tái)設(shè)置

? ? PlatformConfig.setSinaWeibo("2779483073","3fcbcd9df63e095b8168202bae259465","http://www.sina.com");

}

在這有我們需要的arr包 D:\AndroidStudioProjects\20031A\share\app\libs

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末叠纹,一起剝皮案震驚了整個(gè)濱河市季研,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌誉察,老刑警劉巖与涡,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異持偏,居然都是意外死亡驼卖,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門鸿秆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酌畜,“玉大人,你說我怎么就攤上這事卿叽∏虐” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵考婴,是天一觀的道長(zhǎng)贩虾。 經(jīng)常有香客問我,道長(zhǎng)沥阱,這世上最難降的妖魔是什么缎罢? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任策精,我火速辦了婚禮咽袜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘及老。我一直安慰自己,他們只是感情好食铐,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布虐呻。 她就那樣靜靜地躺著,像睡著了一般偶惠。 火紅的嫁衣襯著肌膚如雪朗涩。 梳的紋絲不亂的頭發(fā)上谢床,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天识腿,我揣著相機(jī)與錄音,去河邊找鬼骂束。 笑死硝全,一個(gè)胖子當(dāng)著我的面吹牛伟众,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播账胧,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼治泥,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼遮精!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起准脂,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤狸膏,失蹤者是張志新(化名)和其女友劉穎湾戳,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體砾脑,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡县遣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年汹族,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夸政。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡守问,死狀恐怖坑资,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情仿便,我是刑警寧澤攒巍,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布婉称,位于F島的核電站,受9級(jí)特大地震影響逝她,放射性物質(zhì)發(fā)生泄漏窿凤。R本人自食惡果不足惜跨蟹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一喷市、第九天 我趴在偏房一處隱蔽的房頂上張望威恼。 院中可真熱鬧寝并,春花似錦衬潦、人聲如沸植酥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽走越。三九已至耻瑟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喳整,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工搬素, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蔗蹋,地道東北人囱淋。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓皂吮,卻偏偏與公主長(zhǎng)得像蜂筹,于是被迫代替她去往敵國(guó)和親芦倒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容