diff --git a/.github/workflows/mirror.yml b/.github/workflows/mirror.yml
new file mode 100644
index 0000000..4db9438
--- /dev/null
+++ b/.github/workflows/mirror.yml
@@ -0,0 +1,22 @@
+# This is a basic workflow to help you get started with Actions
+
+name: gitee mirror
+
+# Controls when the action will run.
+on: [ push, pull_request, workflow_dispatch ]
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+ # This workflow contains a single job called "build"
+ to_gitee:
+ # The type of runner that the job will run on
+ runs-on: ubuntu-latest
+ continue-on-error: true
+ # Steps represent a sequence of tasks that will be executed as part of the job
+ steps:
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - uses: actions/checkout@v1
+ - uses: pixta-dev/repository-mirroring-action@v1
+ with:
+ target_repo_url: git@gitee.com:umengplus/MultiFunctionAndroidDemo.git
+ ssh_private_key: ${{ secrets.GITEE_SSH_PRIVATE_KEY }}
diff --git a/.gitignore b/.gitignore
index 502c314..e307fbe 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,20 +1,11 @@
*.iml
.gradle
-/local.properties
+local.properties
.DS_Store
-/build
-/captures
+build
+captures
.externalNativeBuild
.idea
-.gradle/
-.idea/
-.git/
-.DS_Store
-gradlew.bat
-import-summary.txt
-local.properties
+.git
*.iml
-build/
-captures/
-config.xml
diff --git a/README.md b/README.md
index 05facbe..a865fe2 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,32 @@
### 【友盟+】统计、推送、分享三合一组件化SDK集成Demo
+重要更新:增加用户授权隐私协议友盟sdk初始化逻辑,具体请查看SplashTestActivity
+
+本项目仅提供离线包依赖方式集成示例。
+
+如果您是采用maven库在线依赖相关友盟SDK,请参考[如下Demo工程](https://github.com/umeng/MultiFunctionAndroidMavenDemo-master)。
+
+apm SDK集成示例工程,请参考 [APM Demo](http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/176778/UMDP_zh/1608017839531/CrashDemo.zip)。
+
---
+## 集成升级必读(Android)
+
+#### 1. 统计SDK 9.3.0版本不能和低版本推送、分享SDK混用。混用可能导致不可预知后果(例如:崩溃,无数据等)。
+
+下表列出统计SDK 9.3.0支持的各业务SDK最低版本,请确保App中配合9.3.0统计SDK集成的各业务SDK版本号满足下表要求。
+
+
+| 推送SDK | 分享SDK | 游戏统计SDK| 智能登录SDK|
+| -------- | -------- | --------| ---------|
+| >= v6.2.0 | >= v7.1.0 | >= v9.2.0+G | >= v1.4.0 |
+
-* 本Demo工程仅适用于【友盟+】组件化版本SDK,即包含基础组件库umeng-common-x.x.x.jar的SDK版本。
+#### 2. 集成本版本SDK 请务必在混淆时增加:-keep class com.uc.** {*;}
-* 集成v2.0.0(umeng-common-2.0.0.jar)及更高版本基础组件库的客户,请参照分支"master"代码集成。
+#### 3. 集成移动统计时,如果App不能保证在Appcalition.onCreate函数中调用UMConfigure.init初始化函数 请查看https://developer.umeng.com/docs/119267/detail/118588#h3-u9884u521Du59CBu5316
-* 集成v2.0.0以下(不包含2.0.0,如:umeng-common-1.5.4.jar)版本基础组件库的客户,请参照分支"common_1.5.4"代码集成。
+#### 4. 集成移动统计时,如果开发者调用kill或者exit之类的方法杀死进程,请查看,https://developer.umeng.com/docs/119267/detail/118637#h1-u5176u4ED6u529Fu80FD6
-* 集成v9.0.0及以上(包含9.0.0)版本统计、游戏统计的客户,请参照分支"beta_9.0.1"代码集成。
+#### 5. 如集成移动统计后无数据,请查看https://developer.umeng.com/docs/119267/cate/121449
+#### 6. 详细升级文档,请查看:https://developer.umeng.com/docs/119267/detail/118642
\ No newline at end of file
diff --git a/UMLibrary/.gitignore b/UMLibrary/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/UMLibrary/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/UMLibrary/AndroidManifest.xml b/UMLibrary/AndroidManifest.xml
deleted file mode 100644
index 1f2e3d5..0000000
--- a/UMLibrary/AndroidManifest.xml
+++ /dev/null
@@ -1,164 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/UMLibrary/build.gradle b/UMLibrary/build.gradle
index f94b7a0..b9d48f5 100644
--- a/UMLibrary/build.gradle
+++ b/UMLibrary/build.gradle
@@ -1,51 +1,55 @@
apply plugin: 'com.android.library'
+ArrayList getShareDir(String name) {
+ ArrayList tmp = new ArrayList()
+ File[] files = (new File(rootDir, "share")).listFiles()
+ if (files != null) {
+ tmp.addAll(files)
+ }
+ ArrayList dirs = new ArrayList()
+ while (tmp.size() > 0) {
+ File file = tmp.remove(0)
+ if (file.isDirectory() && name == file.getName()) {
+ dirs.add(file.getPath())
+ } else if (file.isDirectory()) {
+ files = file.listFiles()
+ if (files != null) {
+ tmp.addAll(files)
+ }
+ }
+ }
+ return dirs
+}
+
android {
- compileSdkVersion 29
- buildToolsVersion "29.0.1"
+ compileSdkVersion 34
defaultConfig {
minSdkVersion 14
- targetSdkVersion 28
- versionCode 1
- versionName "1.0"
+ targetSdkVersion 30
+
+ sourceSets {
+ main {
+ ArrayList resSrcList = getShareDir("res")
+ resSrcList.add("src/main/res")
+ res.srcDirs = resSrcList
+ }
+ }
+ }
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
- }
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
- sourceSets {
- main {
- manifest.srcFile 'AndroidManifest.xml'
- java.srcDirs = ['src']
- resources.srcDirs = ['src']
- aidl.srcDirs = ['src']
- renderscript.srcDirs = ['src']
- res.srcDirs = ['res']
- assets.srcDirs = ['assets']
- jniLibs.srcDirs = ['libs']
- }
-
- // Move the tests to tests/java, tests/res, etc...
- instrumentTest.setRoot('tests')
-
- // Move the build types to build-types/
- // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
- // This moves them out of them default location under src//... which would
- // conflict with src/ being used by the main source set.
- // Adding new build types or product flavors should be accompanied
- // by a similar customization.
- debug.setRoot('build-types/debug')
- release.setRoot('build-types/release')
- }
}
dependencies {
- compile fileTree(dir: 'libs', include: ['*.jar'])
-
+ api fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
+ ArrayList share = getShareDir("libs")
+ for (String item : share) {
+ api fileTree(dir: "${item}", include: ['*.jar', '*.aar'])
+ }
}
diff --git a/UMLibrary/libs/SecurityEnvSDK-release-1.1.0.jar b/UMLibrary/libs/SecurityEnvSDK-release-1.1.0.jar
deleted file mode 100644
index 2b80819..0000000
Binary files a/UMLibrary/libs/SecurityEnvSDK-release-1.1.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/SocialSDK_laiwang_1.jar b/UMLibrary/libs/SocialSDK_laiwang_1.jar
deleted file mode 100644
index 0de8d25..0000000
Binary files a/UMLibrary/libs/SocialSDK_laiwang_1.jar and /dev/null differ
diff --git a/UMLibrary/libs/alicloud-android-sdk-httpdns-1.1.3.1.jar b/UMLibrary/libs/alicloud-android-sdk-httpdns-1.1.3.1.jar
deleted file mode 100644
index 2dacb3e..0000000
Binary files a/UMLibrary/libs/alicloud-android-sdk-httpdns-1.1.3.1.jar and /dev/null differ
diff --git a/UMLibrary/libs/alicloud-android-utils-1.0.3.jar b/UMLibrary/libs/alicloud-android-utils-1.0.3.jar
deleted file mode 100644
index 19dcd67..0000000
Binary files a/UMLibrary/libs/alicloud-android-utils-1.0.3.jar and /dev/null differ
diff --git a/UMLibrary/libs/android-support-v4.jar b/UMLibrary/libs/android-support-v4.jar
deleted file mode 100644
index 2ff47f4..0000000
Binary files a/UMLibrary/libs/android-support-v4.jar and /dev/null differ
diff --git a/UMLibrary/libs/libddshare.jar b/UMLibrary/libs/libddshare.jar
deleted file mode 100644
index 55481af..0000000
Binary files a/UMLibrary/libs/libddshare.jar and /dev/null differ
diff --git a/UMLibrary/libs/open_sdk_r7f9df38_lite.jar b/UMLibrary/libs/open_sdk_r7f9df38_lite.jar
deleted file mode 100644
index 5219021..0000000
Binary files a/UMLibrary/libs/open_sdk_r7f9df38_lite.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-agoo-accs-3.4.2.7.12.jar b/UMLibrary/libs/umeng-agoo-accs-3.4.2.7.12.jar
new file mode 100644
index 0000000..eb75695
Binary files /dev/null and b/UMLibrary/libs/umeng-agoo-accs-3.4.2.7.12.jar differ
diff --git a/UMLibrary/libs/umeng-agoo_networksdk-3.5.8.10.jar b/UMLibrary/libs/umeng-agoo_networksdk-3.5.8.10.jar
new file mode 100644
index 0000000..fc345bd
Binary files /dev/null and b/UMLibrary/libs/umeng-agoo_networksdk-3.5.8.10.jar differ
diff --git a/UMLibrary/libs/umeng-agoo_tnet4android-3.1.14.10.2.aar b/UMLibrary/libs/umeng-agoo_tnet4android-3.1.14.10.2.aar
new file mode 100644
index 0000000..8b56f70
Binary files /dev/null and b/UMLibrary/libs/umeng-agoo_tnet4android-3.1.14.10.2.aar differ
diff --git a/UMLibrary/libs/umeng-alicloud-httpdns-1.3.2.3.1.jar b/UMLibrary/libs/umeng-alicloud-httpdns-1.3.2.3.1.jar
new file mode 100644
index 0000000..0d00aa3
Binary files /dev/null and b/UMLibrary/libs/umeng-alicloud-httpdns-1.3.2.3.1.jar differ
diff --git a/UMLibrary/libs/umeng-alicloud-utils-2.0.0.1.jar b/UMLibrary/libs/umeng-alicloud-utils-2.0.0.1.jar
new file mode 100644
index 0000000..4128736
Binary files /dev/null and b/UMLibrary/libs/umeng-alicloud-utils-2.0.0.1.jar differ
diff --git a/UMLibrary/libs/umeng-alicloud_beacon-1.0.5.jar b/UMLibrary/libs/umeng-alicloud_beacon-1.0.5.jar
new file mode 100644
index 0000000..a872b5d
Binary files /dev/null and b/UMLibrary/libs/umeng-alicloud_beacon-1.0.5.jar differ
diff --git a/UMLibrary/libs/umeng-analytics-8.1.6.jar b/UMLibrary/libs/umeng-analytics-8.1.6.jar
deleted file mode 100644
index f18defe..0000000
Binary files a/UMLibrary/libs/umeng-analytics-8.1.6.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-common-2.2.5.jar b/UMLibrary/libs/umeng-common-2.2.5.jar
deleted file mode 100644
index 2f9a7bf..0000000
Binary files a/UMLibrary/libs/umeng-common-2.2.5.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-common-9.8.8.aar b/UMLibrary/libs/umeng-common-9.8.8.aar
new file mode 100644
index 0000000..7f372b5
Binary files /dev/null and b/UMLibrary/libs/umeng-common-9.8.8.aar differ
diff --git a/UMLibrary/libs/umeng-game-9.2.0+G.jar b/UMLibrary/libs/umeng-game-9.2.0+G.jar
new file mode 100644
index 0000000..3c3bc39
Binary files /dev/null and b/UMLibrary/libs/umeng-game-9.2.0+G.jar differ
diff --git a/UMLibrary/libs/umeng-push-4.2.0.jar b/UMLibrary/libs/umeng-push-4.2.0.jar
deleted file mode 100644
index 22deeca..0000000
Binary files a/UMLibrary/libs/umeng-push-4.2.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-push-6.7.2.aar b/UMLibrary/libs/umeng-push-6.7.2.aar
new file mode 100644
index 0000000..4916965
Binary files /dev/null and b/UMLibrary/libs/umeng-push-6.7.2.aar differ
diff --git a/UMLibrary/libs/umeng-share-Ding-7.0.0.jar b/UMLibrary/libs/umeng-share-Ding-7.0.0.jar
deleted file mode 100644
index 7c4a9d6..0000000
Binary files a/UMLibrary/libs/umeng-share-Ding-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-QQ-full-7.0.0.jar b/UMLibrary/libs/umeng-share-QQ-full-7.0.0.jar
deleted file mode 100644
index 8d92a74..0000000
Binary files a/UMLibrary/libs/umeng-share-QQ-full-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-alipay-7.0.0.jar b/UMLibrary/libs/umeng-share-alipay-7.0.0.jar
deleted file mode 100644
index e475235..0000000
Binary files a/UMLibrary/libs/umeng-share-alipay-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-core-7.0.0.jar b/UMLibrary/libs/umeng-share-core-7.0.0.jar
deleted file mode 100644
index 2a874a7..0000000
Binary files a/UMLibrary/libs/umeng-share-core-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-douban-7.0.0.jar b/UMLibrary/libs/umeng-share-douban-7.0.0.jar
deleted file mode 100644
index af5b929..0000000
Binary files a/UMLibrary/libs/umeng-share-douban-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-dropbox-7.0.0.jar b/UMLibrary/libs/umeng-share-dropbox-7.0.0.jar
deleted file mode 100644
index 6aa036f..0000000
Binary files a/UMLibrary/libs/umeng-share-dropbox-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-email-7.0.0.jar b/UMLibrary/libs/umeng-share-email-7.0.0.jar
deleted file mode 100644
index 39283b3..0000000
Binary files a/UMLibrary/libs/umeng-share-email-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-evernote-7.0.0.jar b/UMLibrary/libs/umeng-share-evernote-7.0.0.jar
deleted file mode 100644
index 602593b..0000000
Binary files a/UMLibrary/libs/umeng-share-evernote-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-facebook-6.9.8.jar b/UMLibrary/libs/umeng-share-facebook-6.9.8.jar
deleted file mode 100644
index 8ee9ed9..0000000
Binary files a/UMLibrary/libs/umeng-share-facebook-6.9.8.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-flickr-7.0.0.jar b/UMLibrary/libs/umeng-share-flickr-7.0.0.jar
deleted file mode 100644
index 03546f9..0000000
Binary files a/UMLibrary/libs/umeng-share-flickr-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-foursquare-7.0.0.jar b/UMLibrary/libs/umeng-share-foursquare-7.0.0.jar
deleted file mode 100644
index 08d8342..0000000
Binary files a/UMLibrary/libs/umeng-share-foursquare-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-gplus-7.0.0.jar b/UMLibrary/libs/umeng-share-gplus-7.0.0.jar
deleted file mode 100644
index 4a90968..0000000
Binary files a/UMLibrary/libs/umeng-share-gplus-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-instagram-7.0.0.jar b/UMLibrary/libs/umeng-share-instagram-7.0.0.jar
deleted file mode 100644
index a733774..0000000
Binary files a/UMLibrary/libs/umeng-share-instagram-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-kakao-7.0.0.jar b/UMLibrary/libs/umeng-share-kakao-7.0.0.jar
deleted file mode 100644
index 93eab53..0000000
Binary files a/UMLibrary/libs/umeng-share-kakao-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-laiwang-7.0.0.jar b/UMLibrary/libs/umeng-share-laiwang-7.0.0.jar
deleted file mode 100644
index 1a34adf..0000000
Binary files a/UMLibrary/libs/umeng-share-laiwang-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-line-7.0.0.jar b/UMLibrary/libs/umeng-share-line-7.0.0.jar
deleted file mode 100644
index e107f86..0000000
Binary files a/UMLibrary/libs/umeng-share-line-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-linkedin-7.0.0.jar b/UMLibrary/libs/umeng-share-linkedin-7.0.0.jar
deleted file mode 100644
index 4bf45b5..0000000
Binary files a/UMLibrary/libs/umeng-share-linkedin-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-pinterest-7.0.0.jar b/UMLibrary/libs/umeng-share-pinterest-7.0.0.jar
deleted file mode 100644
index c4faee9..0000000
Binary files a/UMLibrary/libs/umeng-share-pinterest-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-pocket-7.0.0.jar b/UMLibrary/libs/umeng-share-pocket-7.0.0.jar
deleted file mode 100644
index 3a66f91..0000000
Binary files a/UMLibrary/libs/umeng-share-pocket-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-renren-7.0.0.jar b/UMLibrary/libs/umeng-share-renren-7.0.0.jar
deleted file mode 100644
index e95552b..0000000
Binary files a/UMLibrary/libs/umeng-share-renren-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-sina-full-6.9.8.jar b/UMLibrary/libs/umeng-share-sina-full-6.9.8.jar
deleted file mode 100644
index 083b937..0000000
Binary files a/UMLibrary/libs/umeng-share-sina-full-6.9.8.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-sms-7.0.0.jar b/UMLibrary/libs/umeng-share-sms-7.0.0.jar
deleted file mode 100644
index 9f27c19..0000000
Binary files a/UMLibrary/libs/umeng-share-sms-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-tencentWB-7.0.0.jar b/UMLibrary/libs/umeng-share-tencentWB-7.0.0.jar
deleted file mode 100644
index d042301..0000000
Binary files a/UMLibrary/libs/umeng-share-tencentWB-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-tumblr-7.0.0.jar b/UMLibrary/libs/umeng-share-tumblr-7.0.0.jar
deleted file mode 100644
index 3fd9d9b..0000000
Binary files a/UMLibrary/libs/umeng-share-tumblr-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-twitter-7.0.0.jar b/UMLibrary/libs/umeng-share-twitter-7.0.0.jar
deleted file mode 100644
index 3bffad4..0000000
Binary files a/UMLibrary/libs/umeng-share-twitter-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-vkontakte-7.0.0.jar b/UMLibrary/libs/umeng-share-vkontakte-7.0.0.jar
deleted file mode 100644
index 6ae066e..0000000
Binary files a/UMLibrary/libs/umeng-share-vkontakte-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-wechat-full-7.0.0.jar b/UMLibrary/libs/umeng-share-wechat-full-7.0.0.jar
deleted file mode 100644
index 7712c4d..0000000
Binary files a/UMLibrary/libs/umeng-share-wechat-full-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-whatsapp-7.0.0.jar b/UMLibrary/libs/umeng-share-whatsapp-7.0.0.jar
deleted file mode 100644
index 028dd33..0000000
Binary files a/UMLibrary/libs/umeng-share-whatsapp-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-yinxin-7.0.0.jar b/UMLibrary/libs/umeng-share-yinxin-7.0.0.jar
deleted file mode 100644
index 2c8f136..0000000
Binary files a/UMLibrary/libs/umeng-share-yinxin-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-share-ynote-7.0.0.jar b/UMLibrary/libs/umeng-share-ynote-7.0.0.jar
deleted file mode 100644
index 8262ff4..0000000
Binary files a/UMLibrary/libs/umeng-share-ynote-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-shareboard-widget-7.0.0.jar b/UMLibrary/libs/umeng-shareboard-widget-7.0.0.jar
deleted file mode 100644
index 23f7a0f..0000000
Binary files a/UMLibrary/libs/umeng-shareboard-widget-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-sharetool-7.0.0.jar b/UMLibrary/libs/umeng-sharetool-7.0.0.jar
deleted file mode 100644
index f5e8c25..0000000
Binary files a/UMLibrary/libs/umeng-sharetool-7.0.0.jar and /dev/null differ
diff --git a/UMLibrary/libs/umeng-umdid-1.1.0.jar b/UMLibrary/libs/umeng-umdid-1.1.0.jar
new file mode 100644
index 0000000..e7c32a0
Binary files /dev/null and b/UMLibrary/libs/umeng-umdid-1.1.0.jar differ
diff --git a/UMLibrary/libs/utdid4all-1.1.5.3_proguard.jar b/UMLibrary/libs/utdid4all-1.1.5.3_proguard.jar
deleted file mode 100644
index 5eed5be..0000000
Binary files a/UMLibrary/libs/utdid4all-1.1.5.3_proguard.jar and /dev/null differ
diff --git a/UMLibrary/libs/uyumao-1.1.4.aar b/UMLibrary/libs/uyumao-1.1.4.aar
new file mode 100644
index 0000000..8b4f6cb
Binary files /dev/null and b/UMLibrary/libs/uyumao-1.1.4.aar differ
diff --git a/UMLibrary/libs/wechat-sdk-android-without-mta-5.4.3.jar b/UMLibrary/libs/wechat-sdk-android-without-mta-5.4.3.jar
deleted file mode 100644
index b83d6b5..0000000
Binary files a/UMLibrary/libs/wechat-sdk-android-without-mta-5.4.3.jar and /dev/null differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_google.png b/UMLibrary/res/drawable/umeng_socialize_google.png
deleted file mode 100644
index cf960b6..0000000
Binary files a/UMLibrary/res/drawable/umeng_socialize_google.png and /dev/null differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_laiwang.png b/UMLibrary/res/drawable/umeng_socialize_laiwang.png
deleted file mode 100644
index 04d245e..0000000
Binary files a/UMLibrary/res/drawable/umeng_socialize_laiwang.png and /dev/null differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_laiwang_dynamic.png b/UMLibrary/res/drawable/umeng_socialize_laiwang_dynamic.png
deleted file mode 100644
index f95a2e7..0000000
Binary files a/UMLibrary/res/drawable/umeng_socialize_laiwang_dynamic.png and /dev/null differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_renren.png b/UMLibrary/res/drawable/umeng_socialize_renren.png
deleted file mode 100644
index 41aa69a..0000000
Binary files a/UMLibrary/res/drawable/umeng_socialize_renren.png and /dev/null differ
diff --git a/UMLibrary/res/values/string.xml b/UMLibrary/res/values/string.xml
deleted file mode 100644
index 045e125..0000000
--- a/UMLibrary/res/values/string.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/UMLibrary/res/values/umeng_socialize_style.xml b/UMLibrary/res/values/umeng_socialize_style.xml
deleted file mode 100644
index ab0f01f..0000000
--- a/UMLibrary/res/values/umeng_socialize_style.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/UMLibrary/src/main/AndroidManifest.xml b/UMLibrary/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..326b75d
--- /dev/null
+++ b/UMLibrary/src/main/AndroidManifest.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/UMLibrary/assets/geo_global_ca.cer b/UMLibrary/src/main/assets/geo_global_ca.cer
similarity index 100%
rename from UMLibrary/assets/geo_global_ca.cer
rename to UMLibrary/src/main/assets/geo_global_ca.cer
diff --git a/UMLibrary/res/drawable/umeng_socialize_back_icon.png b/UMLibrary/src/main/res/drawable/umeng_socialize_back_icon.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_back_icon.png
rename to UMLibrary/src/main/res/drawable/umeng_socialize_back_icon.png
diff --git a/UMLibrary/res/drawable/umeng_socialize_btn_bg.xml b/UMLibrary/src/main/res/drawable/umeng_socialize_btn_bg.xml
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_btn_bg.xml
rename to UMLibrary/src/main/res/drawable/umeng_socialize_btn_bg.xml
diff --git a/UMLibrary/res/drawable/umeng_socialize_copy.png b/UMLibrary/src/main/res/drawable/umeng_socialize_copy.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_copy.png
rename to UMLibrary/src/main/res/drawable/umeng_socialize_copy.png
diff --git a/UMLibrary/res/drawable/umeng_socialize_copyurl.png b/UMLibrary/src/main/res/drawable/umeng_socialize_copyurl.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_copyurl.png
rename to UMLibrary/src/main/res/drawable/umeng_socialize_copyurl.png
diff --git a/UMLibrary/res/drawable/umeng_socialize_delete.png b/UMLibrary/src/main/res/drawable/umeng_socialize_delete.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_delete.png
rename to UMLibrary/src/main/res/drawable/umeng_socialize_delete.png
diff --git a/UMLibrary/res/drawable/umeng_socialize_edit_bg.xml b/UMLibrary/src/main/res/drawable/umeng_socialize_edit_bg.xml
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_edit_bg.xml
rename to UMLibrary/src/main/res/drawable/umeng_socialize_edit_bg.xml
diff --git a/UMLibrary/res/drawable/umeng_socialize_menu_default.png b/UMLibrary/src/main/res/drawable/umeng_socialize_menu_default.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_menu_default.png
rename to UMLibrary/src/main/res/drawable/umeng_socialize_menu_default.png
diff --git a/UMLibrary/res/drawable/umeng_socialize_more.png b/UMLibrary/src/main/res/drawable/umeng_socialize_more.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_more.png
rename to UMLibrary/src/main/res/drawable/umeng_socialize_more.png
diff --git a/UMLibrary/res/drawable/umeng_socialize_share_music.png b/UMLibrary/src/main/res/drawable/umeng_socialize_share_music.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_share_music.png
rename to UMLibrary/src/main/res/drawable/umeng_socialize_share_music.png
diff --git a/UMLibrary/res/drawable/umeng_socialize_share_video.png b/UMLibrary/src/main/res/drawable/umeng_socialize_share_video.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_share_video.png
rename to UMLibrary/src/main/res/drawable/umeng_socialize_share_video.png
diff --git a/UMLibrary/res/drawable/umeng_socialize_share_web.png b/UMLibrary/src/main/res/drawable/umeng_socialize_share_web.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_share_web.png
rename to UMLibrary/src/main/res/drawable/umeng_socialize_share_web.png
diff --git a/UMLibrary/res/drawable/umeng_socialize_tx.png b/UMLibrary/src/main/res/drawable/umeng_socialize_tx.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_tx.png
rename to UMLibrary/src/main/res/drawable/umeng_socialize_tx.png
diff --git a/UMLibrary/res/layout/socialize_share_menu_item.xml b/UMLibrary/src/main/res/layout/socialize_share_menu_item.xml
similarity index 100%
rename from UMLibrary/res/layout/socialize_share_menu_item.xml
rename to UMLibrary/src/main/res/layout/socialize_share_menu_item.xml
diff --git a/UMLibrary/res/layout/umeng_socialize_oauth_dialog.xml b/UMLibrary/src/main/res/layout/umeng_socialize_oauth_dialog.xml
similarity index 100%
rename from UMLibrary/res/layout/umeng_socialize_oauth_dialog.xml
rename to UMLibrary/src/main/res/layout/umeng_socialize_oauth_dialog.xml
diff --git a/UMLibrary/res/layout/umeng_socialize_share.xml b/UMLibrary/src/main/res/layout/umeng_socialize_share.xml
similarity index 100%
rename from UMLibrary/res/layout/umeng_socialize_share.xml
rename to UMLibrary/src/main/res/layout/umeng_socialize_share.xml
diff --git a/UMLibrary/res/layout/upush_bar_image_notification.xml b/UMLibrary/src/main/res/layout/upush_bar_image_notification.xml
similarity index 100%
rename from UMLibrary/res/layout/upush_bar_image_notification.xml
rename to UMLibrary/src/main/res/layout/upush_bar_image_notification.xml
diff --git a/UMLibrary/res/layout/upush_notification.xml b/UMLibrary/src/main/res/layout/upush_notification.xml
similarity index 100%
rename from UMLibrary/res/layout/upush_notification.xml
rename to UMLibrary/src/main/res/layout/upush_notification.xml
diff --git a/UMLibrary/res/values/umeng_socialize_shareview_strings.xml b/UMLibrary/src/main/res/values/umeng_socialize_shareview_strings.xml
similarity index 100%
rename from UMLibrary/res/values/umeng_socialize_shareview_strings.xml
rename to UMLibrary/src/main/res/values/umeng_socialize_shareview_strings.xml
diff --git a/UMLibrary/src/main/res/values/umeng_socialize_style.xml b/UMLibrary/src/main/res/values/umeng_socialize_style.xml
new file mode 100644
index 0000000..785505c
--- /dev/null
+++ b/UMLibrary/src/main/res/values/umeng_socialize_style.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 9a0b431..89c28c4 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,26 +1,24 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 29
- buildToolsVersion '29.0.1'
+ compileSdkVersion 34
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+
defaultConfig {
applicationId "com.umeng.soexample"
- minSdkVersion 18
- targetSdkVersion 29
+ minSdkVersion 21
+ targetSdkVersion 30
versionCode 1
versionName "1.0"
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
- }
-
-
- buildTypes {
- release {
- minifyEnabled false
- signingConfig signingConfigs.debug
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ ndk {//PushSDK目前只支持4种架构
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86'
}
-
}
+
signingConfigs {
debug {
storeFile file('debug.keystore')
@@ -30,18 +28,45 @@ android {
}
}
+ buildTypes {
+ release {
+ minifyEnabled false
+ signingConfig signingConfigs.debug
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+// packagingOptions {
+// exclude 'AndroidManifest.xml'
+// exclude 'resources.arsc'
+// }
+
+ lintOptions {
+ checkReleaseBuilds false
+ abortOnError false
+ }
}
dependencies {
-// compile fileTree(include: ['*.jar'], dir: 'libs')
-// compile project(':umlib')
-// compile project(':push')
- //compile files('libs/umeng-analytics-7.4.1.jar')
- //compile files('libs/umeng-common-1.4.2.jar')
- compile project(':UMLibrary')
- compile 'com.twitter.sdk.android:twitter-core:3.1.1'
- compile 'com.twitter.sdk.android:tweet-composer:3.1.1'
-
- compile 'com.sina.weibo.sdk:core:4.4.3:openDefaultRelease@aar'
+ implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
+ implementation project(':UMLibrary')
+
+ //U-Share 依赖
+ //noinspection GradleCompatible
+ implementation 'com.android.support:support-v4:25.0.0'
+
+ implementation 'com.twitter.sdk.android:twitter-core:3.1.1'
+ implementation 'com.twitter.sdk.android:tweet-composer:3.1.1'
+
+ //新浪官方依赖库
+ implementation('io.github.sinaweibosdk:core:13.10.1') {
+ exclude module: 'unspecified'
+ }
+ //微信官方依赖库
+ implementation 'com.tencent.mm.opensdk:wechat-sdk-android:6.8.24'
+ //钉钉官方sdk
+ implementation "com.alibaba.android:ddsharesdk:1.2.2"
+ //字节sdk
+ implementation 'com.bytedance.ies.ugc.aweme:opensdk-china-external:0.1.9.0'
+ implementation 'com.bytedance.ies.ugc.aweme:opensdk-common:0.1.9.0'
}
diff --git a/app/libs/umeng-apm-v2.0.3.aar b/app/libs/umeng-apm-v2.0.3.aar
new file mode 100644
index 0000000..8a5f5dc
Binary files /dev/null and b/app/libs/umeng-apm-v2.0.3.aar differ
diff --git a/app/libs/umeng-asms-v1.8.7.aar b/app/libs/umeng-asms-v1.8.7.aar
new file mode 100644
index 0000000..47a932b
Binary files /dev/null and b/app/libs/umeng-asms-v1.8.7.aar differ
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index 0dde5a8..df280d5 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -1,25 +1,45 @@
-# Add project specific ProGuard rules here.
-# By default, the flags in this file are appended to flags specified
-# in /Users/umeng/Library/Android/sdk/tools/proguard/proguard-android.txt
-# You can edit the include path and order by changing the proguardFiles
-# directive in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# Add any project specific keep options here:
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
+-dontwarn com.umeng.**
+-dontwarn com.taobao.**
+-dontwarn anet.channel.**
+-dontwarn anetwork.channel.**
+-dontwarn org.android.**
+-dontwarn org.apache.thrift.**
+-dontwarn com.xiaomi.**
+-dontwarn com.huawei.**
+-dontwarn com.meizu.**
+
+-keepattributes *Annotation*
+
+-keep class com.taobao.** {*;}
+-keep class org.android.** {*;}
+-keep class anet.channel.** {*;}
+-keep class com.umeng.** {*;}
+-keep class com.uyumao.** { *; }
+-keep class com.xiaomi.** {*;}
+-keep class com.huawei.** {*;}
+-keep class com.meizu.** {*;}
+-keep class org.apache.thrift.** {*;}
+
+-keep class com.alibaba.sdk.android.** {*;}
+-keep class com.ut.** {*;}
+-keep class com.uc.** {*;}
+-keep class com.ta.** {*;}
+
+-keep public class **.R$* {
+ public static final int *;
+}
+
+-keep class com.umeng.** {*;}
+
+-keep class org.repackage.** {*;}
+
+-keep class com.uyumao.** { *; }
+
+-keepclassmembers class * {
+ public (org.json.JSONObject);
+}
+
+-keepclassmembers enum * {
+ public static **[] values();
+ public static ** valueOf(java.lang.String);
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 81b6233..7922f48 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,17 +1,43 @@
+ xmlns:tools="http://schemas.android.com/tools"
+ package="com.umeng.soexample">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tools:replace="android:allowBackup"
+ android:usesCleartextTraffic="true">
-
+
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ android:theme="@android:style/Theme.NoTitleBar" />
+
+
-
-
-
-
+ android:theme="@style/VK.Transparent" />
+ android:noHistory="true">
+
-
+
+
+ android:configChanges="orientation|keyboardHidden|screenSize"
+ android:theme="@android:style/Theme.Translucent.NoTitleBar" />
+
+
+ android:grantUriPermissions="true">
+ android:resource="@xml/filepaths" />
-
+
@@ -158,7 +183,6 @@
+ android:value="@string/facebook_app_id" />
-
-
-
+
+
+
+ android:configChanges="orientation|keyboard"
+ android:launchMode="singleTask">
-
+
+
@@ -198,21 +222,31 @@
-
+
+
-
-
+ android:exported="true"
+ android:launchMode="singleTask">
+
+
-
-
-
-
-
-
+
+
+
+
+
-
\ No newline at end of file
+
+
+
diff --git a/app/src/main/assets/datu.jpg b/app/src/main/assets/datu.jpg
new file mode 100644
index 0000000..4a4755f
Binary files /dev/null and b/app/src/main/assets/datu.jpg differ
diff --git a/app/src/main/assets/localvideo.mp4 b/app/src/main/assets/localvideo.mp4
new file mode 100644
index 0000000..0ce7791
Binary files /dev/null and b/app/src/main/assets/localvideo.mp4 differ
diff --git a/app/src/main/assets/logo.png b/app/src/main/assets/logo.png
new file mode 100644
index 0000000..315b911
Binary files /dev/null and b/app/src/main/assets/logo.png differ
diff --git a/app/src/main/java/com/umeng/soexample/App.java b/app/src/main/java/com/umeng/soexample/App.java
index dd0e730..aa5cd1a 100644
--- a/app/src/main/java/com/umeng/soexample/App.java
+++ b/app/src/main/java/com/umeng/soexample/App.java
@@ -1,15 +1,22 @@
package com.umeng.soexample;
-import java.lang.reflect.Field;
import android.app.Application;
import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
+import android.os.Build;
import android.os.Handler;
import android.util.Log;
import android.widget.RemoteViews;
import android.widget.Toast;
+
+import com.taobao.accs.ACCSClient;
+import com.taobao.accs.AccsClientConfig;
+import com.taobao.agoo.TaobaoRegister;
+import com.tencent.tauth.Tencent;
import com.umeng.commonsdk.UMConfigure;
import com.umeng.message.IUmengRegisterCallback;
import com.umeng.message.MsgConstant;
@@ -21,6 +28,8 @@
import com.umeng.socialize.PlatformConfig;
import com.umeng.analytics.MobclickAgent;
+import com.umeng.soexample.push.UmengNotificationService;
+import com.umeng.soexample.sp.SharedPreferencesHelper;
/**
* Created by wangfei on 2018/1/23.
@@ -28,216 +37,31 @@
public class App extends Application {
- private static final String TAG = App.class.getName();
- public static final String UPDATE_STATUS_ACTION = "com.umeng.message.example.action.UPDATE_STATUS";
- private Handler handler;
+ SharedPreferencesHelper sharedPreferencesHelper;
@Override
public void onCreate() {
super.onCreate();
+ sharedPreferencesHelper = new SharedPreferencesHelper(this, "umeng");
+
//设置LOG开关,默认为false
UMConfigure.setLogEnabled(true);
- try {
- Class> aClass = Class.forName("com.umeng.commonsdk.UMConfigure");
- Field[] fs = aClass.getDeclaredFields();
- for (Field f:fs){
- Log.e("xxxxxx","ff="+f.getName()+" "+f.getType().getName());
- }
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- //初始化组件化基础库, 统计SDK/推送SDK/分享SDK都必须调用此初始化接口
- UMConfigure.init(this, "59892f08310c9307b60023d0", "Umeng", UMConfigure.DEVICE_TYPE_PHONE,
- "669c30a9584623e70e8cd01b0381dcb4");
- //PushSDK初始化(如使用推送SDK,必须调用此方法)
- initUpush();
-
- //统计SDK是否支持采集在子进程中打点的自定义事件,默认不支持
- UMConfigure.setProcessEvent(true);//支持多进程打点
-
- // 页面数据采集模式
- // setPageCollectionMode接口参数说明:
- // 1. MobclickAgent.PageMode.AUTO: 建议大多数用户使用本采集模式,SDK在此模式下自动采集Activity
- // 页面访问路径,开发者不需要针对每一个Activity在onResume/onPause函数中进行手动埋点。在此模式下,
- // 开发者如需针对Fragment、CustomView等自定义页面进行页面统计,直接调用MobclickAgent.onPageStart/
- // MobclickAgent.onPageEnd手动埋点即可。此采集模式简化埋点工作,唯一缺点是在Android 4.0以下设备中
- // 统计不到Activity页面数据和各类基础指标(提示:目前Android 4.0以下设备市场占比已经极小)。
-
- // 2. MobclickAgent.PageMode.MANUAL:对于要求在Android 4.0以下设备中也能正常采集数据的App,可以使用
- // 本模式,开发者需要在每一个Activity的onResume函数中手动调用MobclickAgent.onResume接口,在Activity的
- // onPause函数中手动调用MobclickAgent.onPause接口。在此模式下,开发者如需针对Fragment、CustomView等
- // 自定义页面进行页面统计,直接调用MobclickAgent.onPageStart/MobclickAgent.onPageEnd手动埋点即可。
-
- // 如下两种LEGACY模式不建议首次集成友盟统计SDK的新用户选用。
- // 如果您是友盟统计SDK的老用户,App需要从老版本统计SDK升级到8.0.0版本统计SDK,
- // 并且:您的App之前MobclickAgent.onResume/onPause接口埋点分散在所有Activity
- // 中,逐个删除修改工作量很大且易出错。
- // 若您的App符合以上特征,可以选用如下两种LEGACY模式,否则不建议继续使用LEGACY模式。
- // 简单来说,升级SDK的老用户,如果不需要手动统计页面路径,选用LEGACY_AUTO模式。
- // 如果需要手动统计页面路径,选用LEGACY_MANUAL模式。
- // 3. MobclickAgent.PageMode.LEGACY_AUTO: 本模式适合不需要对Fragment、CustomView
- // 等自定义页面进行页面访问统计的开发者,SDK仅对App中所有Activity进行页面统计,开发者需要在
- // 每一个Activity的onResume函数中手动调用MobclickAgent.onResume接口,在Activity的
- // onPause函数中手动调用MobclickAgent.onPause接口。此模式下MobclickAgent.onPageStart
- // ,MobclickAgent.onPageEnd这两个接口无效。
-
- // 4. MobclickAgent.PageMode.LEGACY_MANUAL: 本模式适合需要对Fragment、CustomView
- // 等自定义页面进行手动页面统计的开发者,开发者如需针对Fragment、CustomView等
- // 自定义页面进行页面统计,直接调用MobclickAgent.onPageStart/MobclickAgent.onPageEnd
- // 手动埋点即可。开发者还需要在每一个Activity的onResume函数中手动调用MobclickAgent.onResume接口,
- // 在Activity的onPause函数中手动调用MobclickAgent.onPause接口。
- MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
- }
-
- private void initUpush() {
- PushAgent mPushAgent = PushAgent.getInstance(this);
- handler = new Handler(getMainLooper());
-
- //sdk开启通知声音
- mPushAgent.setNotificationPlaySound(MsgConstant.NOTIFICATION_PLAY_SDK_ENABLE);
- // sdk关闭通知声音
- // mPushAgent.setNotificationPlaySound(MsgConstant.NOTIFICATION_PLAY_SDK_DISABLE);
- // 通知声音由服务端控制
- // mPushAgent.setNotificationPlaySound(MsgConstant.NOTIFICATION_PLAY_SERVER);
-
- // mPushAgent.setNotificationPlayLights(MsgConstant.NOTIFICATION_PLAY_SDK_DISABLE);
- // mPushAgent.setNotificationPlayVibrate(MsgConstant.NOTIFICATION_PLAY_SDK_DISABLE);
-
- UmengMessageHandler messageHandler = new UmengMessageHandler() {
-
- /**
- * 通知的回调方法(通知送达时会回调)
- */
- @Override
- public void dealWithNotificationMessage(Context context, UMessage msg) {
- //调用super,会展示通知,不调用super,则不展示通知。
- super.dealWithNotificationMessage(context, msg);
- }
-
- /**
- * 自定义消息的回调方法
- */
- @Override
- public void dealWithCustomMessage(final Context context, final UMessage msg) {
-
- handler.post(new Runnable() {
-
- @Override
- public void run() {
- // TODO Auto-generated method stub
- // 对自定义消息的处理方式,点击或者忽略
- boolean isClickOrDismissed = true;
- if (isClickOrDismissed) {
- //自定义消息的点击统计
- UTrack.getInstance(getApplicationContext()).trackMsgClick(msg);
- } else {
- //自定义消息的忽略统计
- UTrack.getInstance(getApplicationContext()).trackMsgDismissed(msg);
- }
- Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
- }
- });
- }
-
- /**
- * 自定义通知栏样式的回调方法
- */
- @Override
- public Notification getNotification(Context context, UMessage msg) {
- switch (msg.builder_id) {
- case 1:
- Notification.Builder builder = new Notification.Builder(context);
- RemoteViews myNotificationView = new RemoteViews(context.getPackageName(),
- R.layout.notification_view);
- myNotificationView.setTextViewText(R.id.notification_title, msg.title);
- myNotificationView.setTextViewText(R.id.notification_text, msg.text);
- myNotificationView.setImageViewBitmap(R.id.notification_large_icon, getLargeIcon(context, msg));
- myNotificationView.setImageViewResource(R.id.notification_small_icon,
- getSmallIconId(context, msg));
- builder.setContent(myNotificationView)
- .setSmallIcon(getSmallIconId(context, msg))
- .setTicker(msg.ticker)
- .setAutoCancel(true);
-
- return builder.getNotification();
- default:
- //默认为0,若填写的builder_id并不存在,也使用默认。
- return super.getNotification(context, msg);
- }
- }
- };
- mPushAgent.setMessageHandler(messageHandler);
+ //友盟预初始化
+ UMConfigure.preInit(getApplicationContext(), "59892f08310c9307b60023d0", "Umeng");
/**
- * 自定义行为的回调处理,参考文档:高级功能-通知的展示及提醒-自定义通知打开动作
- * UmengNotificationClickHandler是在BroadcastReceiver中被调用,故
- * 如果需启动Activity,需添加Intent.FLAG_ACTIVITY_NEW_TASK
- * */
- UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler() {
-
- @Override
- public void launchApp(Context context, UMessage msg) {
- super.launchApp(context, msg);
- }
-
- @Override
- public void openUrl(Context context, UMessage msg) {
- super.openUrl(context, msg);
- }
+ * 打开app首次隐私协议授权,以及sdk初始化,判断逻辑请查看SplashTestActivity
+ */
+ //判断是否同意隐私协议,uminit为1时为已经同意,直接初始化umsdk
+ if (sharedPreferencesHelper.getSharedPreference("uminit", "").equals("1")) {
+ //友盟正式初始化
+ UmInitConfig umInitConfig = new UmInitConfig();
+ umInitConfig.UMinit(getApplicationContext());
+ //QQ官方sdk授权
+ Tencent.setIsPermissionGranted(true);
- @Override
- public void openActivity(Context context, UMessage msg) {
- super.openActivity(context, msg);
- }
-
- @Override
- public void dealWithCustomAction(Context context, UMessage msg) {
- Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
- }
- };
- //使用自定义的NotificationHandler
- mPushAgent.setNotificationClickHandler(notificationClickHandler);
-
- //注册推送服务 每次调用register都会回调该接口
- mPushAgent.register(new IUmengRegisterCallback() {
- @Override
- public void onSuccess(String deviceToken) {
- Log.i(TAG, "device token: " + deviceToken);
- sendBroadcast(new Intent(UPDATE_STATUS_ACTION));
- }
-
- @Override
- public void onFailure(String s, String s1) {
- Log.i(TAG, "register failed: " + s + " " + s1);
- sendBroadcast(new Intent(UPDATE_STATUS_ACTION));
- }
- });
-
- //使用完全自定义处理
- //mPushAgent.setPushIntentServiceClass(UmengNotificationService.class);
-
- //小米通道
- //MiPushRegistar.register(this, XIAOMI_ID, XIAOMI_KEY);
- //华为通道
- //HuaWeiRegister.register(this);
- //魅族通道
- //MeizuRegister.register(this, MEIZU_APPID, MEIZU_APPKEY);
- }
+ }
- {
- PlatformConfig.setWeixin("wxdc1e388c3822c80b", "3baf1193c85774b3fd9d18447d76cab0");
- //豆瓣RENREN平台目前只能在服务器端配置
- PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad", "http://sns.whalecloud.com/");
- PlatformConfig.setYixin("yxc0614e80c9304c11b0391514d09f13bf");
- PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
- PlatformConfig.setTwitter("3aIN7fuF685MuZ7jtXkQxalyi", "MK6FEYG63eWcpDFgRYw4w9puJhzDl0tyuqWjZ3M7XJuuG7mMbO");
- PlatformConfig.setAlipay("2015111700822536");
- PlatformConfig.setLaiwang("laiwangd497e70d4", "d497e70d4c3e4efeab1381476bac4c5e");
- PlatformConfig.setPinterest("1439206");
- PlatformConfig.setKakao("e4f60e065048eb031e235c806b31c70f");
- PlatformConfig.setDing("dingoalmlnohc0wggfedpk");
- PlatformConfig.setVKontakte("5764965", "5My6SNliAaLxEm3Lyd9J");
- PlatformConfig.setDropbox("oz8v5apet3arcdy", "h7p2pjbzkkxt02a");
}
}
diff --git a/app/src/main/java/com/umeng/soexample/BaseActivity.java b/app/src/main/java/com/umeng/soexample/BaseActivity.java
index 94a349d..70d6100 100644
--- a/app/src/main/java/com/umeng/soexample/BaseActivity.java
+++ b/app/src/main/java/com/umeng/soexample/BaseActivity.java
@@ -11,6 +11,7 @@
import android.widget.TextView;
import com.umeng.analytics.MobclickAgent;
+import com.umeng.message.PushAgent;
/**
* Created by wangfei on 2018/1/23.
@@ -29,6 +30,10 @@ protected void onCreate(Bundle savedInstanceState) {
setContentView(getLayout());
setTitle(getResources().getString(R.string.app_name));
+ //推送平台多维度推送决策必须调用方法(需要同意隐私协议之后初始化完成调用)
+ PushAgent.getInstance(this).onAppStart();
+
+
}
public abstract int getLayout();
public void setTitle(String title){
diff --git a/app/src/main/java/com/umeng/soexample/HomeActivity.java b/app/src/main/java/com/umeng/soexample/HomeActivity.java
index d847fad..06d2c82 100644
--- a/app/src/main/java/com/umeng/soexample/HomeActivity.java
+++ b/app/src/main/java/com/umeng/soexample/HomeActivity.java
@@ -52,13 +52,6 @@ public void onClick(View view) {
}
});
- if(Build.VERSION.SDK_INT >= 23){
- String[] mPermissionList = new String[]{
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_PHONE_STATE,
- Manifest.permission.READ_EXTERNAL_STORAGE};
- this.requestPermissions(mPermissionList, 123);
- }
}
diff --git a/app/src/main/java/com/umeng/soexample/UmInitConfig.java b/app/src/main/java/com/umeng/soexample/UmInitConfig.java
new file mode 100644
index 0000000..d760798
--- /dev/null
+++ b/app/src/main/java/com/umeng/soexample/UmInitConfig.java
@@ -0,0 +1,243 @@
+package com.umeng.soexample;
+
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build;
+import android.os.Handler;
+import android.util.Log;
+import android.widget.RemoteViews;
+import android.widget.Toast;
+
+import com.umeng.analytics.MobclickAgent;
+import com.umeng.commonsdk.UMConfigure;
+import com.umeng.message.MsgConstant;
+import com.umeng.message.PushAgent;
+import com.umeng.message.UTrack;
+import com.umeng.message.UmengMessageHandler;
+import com.umeng.message.UmengNotificationClickHandler;
+import com.umeng.message.api.UPushRegisterCallback;
+import com.umeng.message.common.UPushNotificationChannel;
+import com.umeng.message.entity.UMessage;
+import com.umeng.socialize.PlatformConfig;
+
+import static android.os.Looper.getMainLooper;
+
+
+public class UmInitConfig {
+
+ private static final String TAG = App.class.getName();
+ public static final String UPDATE_STATUS_ACTION = "com.umeng.message.example.action.UPDATE_STATUS";
+ private Handler handler;
+
+ public void UMinit(Context context){
+ //初始化组件化基础库, 统计SDK/推送SDK/分享SDK都必须调用此初始化接口
+ UMConfigure.init(context, "59892f08310c9307b60023d0", "Umeng", UMConfigure.DEVICE_TYPE_PHONE,
+ "669c30a9584623e70e8cd01b0381dcb4");
+
+ String fileProvider = "com.umeng.soexample.fileprovider";
+ PlatformConfig.setFileProvider(fileProvider);
+ PlatformConfig.setWeixin("wxdc1e388c3822c80b", "3baf1193c85774b3fd9d18447d76cab0");
+ //企业微信设置
+ PlatformConfig.setWXWork("wwac6ffb259ff6f66a", "EU1LRsWC5uWn6KUuYOiWUpkoH45eOA0yH-ngL8579zs", "1000002", "wwauthac6ffb259ff6f66a000002");
+
+ PlatformConfig.setBytedance("awd1cemo6d0l69zp", "awd1cemo6d0l69zp", "a2dce41fff214270dd4a7f60ac885491", fileProvider);
+
+ PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad", "http://sns.whalecloud.com/");
+ PlatformConfig.setYixin("yxc0614e80c9304c11b0391514d09f13bf");
+ PlatformConfig.setQQZone("101830139", "5d63ae8858f1caab67715ccd6c18d7a5");
+ PlatformConfig.setTwitter("3aIN7fuF685MuZ7jtXkQxalyi", "MK6FEYG63eWcpDFgRYw4w9puJhzDl0tyuqWjZ3M7XJuuG7mMbO");
+ PlatformConfig.setAlipay("2015111700822536");
+ PlatformConfig.setPinterest("1439206");
+ PlatformConfig.setKakao("e4f60e065048eb031e235c806b31c70f");
+ PlatformConfig.setDing("dingoalmlnohc0wggfedpk");
+
+ PlatformConfig.setVKontakte("5764965", "5My6SNliAaLxEm3Lyd9J");
+ PlatformConfig.setDropbox("oz8v5apet3arcdy", "h7p2pjbzkkxt02a");
+ PlatformConfig.setHonor("104408749", "fb1d1d0320a0f661cb1c22892622501f3affceeafb625a5646f299a04c1602ec");
+
+ //集成umeng-crash-vx.x.x.aar,则需要关闭原有统计SDK异常捕获功能
+ MobclickAgent.setCatchUncaughtExceptions(false);
+ //PushSDK初始化(如使用推送SDK,必须调用此方法)
+ initUpush(context);
+
+ //统计SDK是否支持采集在子进程中打点的自定义事件,默认不支持
+ UMConfigure.setProcessEvent(true);//支持多进程打点
+
+ // 页面数据采集模式
+ // setPageCollectionMode接口参数说明:
+ // 1. MobclickAgent.PageMode.AUTO: 建议大多数用户使用本采集模式,SDK在此模式下自动采集Activity
+ // 页面访问路径,开发者不需要针对每一个Activity在onResume/onPause函数中进行手动埋点。在此模式下,
+ // 开发者如需针对Fragment、CustomView等自定义页面进行页面统计,直接调用MobclickAgent.onPageStart/
+ // MobclickAgent.onPageEnd手动埋点即可。此采集模式简化埋点工作,唯一缺点是在Android 4.0以下设备中
+ // 统计不到Activity页面数据和各类基础指标(提示:目前Android 4.0以下设备市场占比已经极小)。
+
+ // 2. MobclickAgent.PageMode.MANUAL:对于要求在Android 4.0以下设备中也能正常采集数据的App,可以使用
+ // 本模式,开发者需要在每一个Activity的onResume函数中手动调用MobclickAgent.onResume接口,在Activity的
+ // onPause函数中手动调用MobclickAgent.onPause接口。在此模式下,开发者如需针对Fragment、CustomView等
+ // 自定义页面进行页面统计,直接调用MobclickAgent.onPageStart/MobclickAgent.onPageEnd手动埋点即可。
+
+ // 如下两种LEGACY模式不建议首次集成友盟统计SDK的新用户选用。
+ // 如果您是友盟统计SDK的老用户,App需要从老版本统计SDK升级到8.0.0版本统计SDK,
+ // 并且:您的App之前MobclickAgent.onResume/onPause接口埋点分散在所有Activity
+ // 中,逐个删除修改工作量很大且易出错。
+ // 若您的App符合以上特征,可以选用如下两种LEGACY模式,否则不建议继续使用LEGACY模式。
+ // 简单来说,升级SDK的老用户,如果不需要手动统计页面路径,选用LEGACY_AUTO模式。
+ // 如果需要手动统计页面路径,选用LEGACY_MANUAL模式。
+ // 3. MobclickAgent.PageMode.LEGACY_AUTO: 本模式适合不需要对Fragment、CustomView
+ // 等自定义页面进行页面访问统计的开发者,SDK仅对App中所有Activity进行页面统计,开发者需要在
+ // 每一个Activity的onResume函数中手动调用MobclickAgent.onResume接口,在Activity的
+ // onPause函数中手动调用MobclickAgent.onPause接口。此模式下MobclickAgent.onPageStart
+ // ,MobclickAgent.onPageEnd这两个接口无效。
+
+ // 4. MobclickAgent.PageMode.LEGACY_MANUAL: 本模式适合需要对Fragment、CustomView
+ // 等自定义页面进行手动页面统计的开发者,开发者如需针对Fragment、CustomView等
+ // 自定义页面进行页面统计,直接调用MobclickAgent.onPageStart/MobclickAgent.onPageEnd
+ // 手动埋点即可。开发者还需要在每一个Activity的onResume函数中手动调用MobclickAgent.onResume接口,
+ // 在Activity的onPause函数中手动调用MobclickAgent.onPause接口。
+ MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
+
+ }
+
+ /**
+ * 主进程和子进程channel都需要进行初始化和注册
+ */
+ private void initUpush(Context context) {
+ PushAgent pushAgent = PushAgent.getInstance(context);
+ handler = new Handler(getMainLooper());
+
+ //sdk开启通知声音
+ pushAgent.setNotificationPlaySound(MsgConstant.NOTIFICATION_PLAY_SDK_ENABLE);
+ // sdk关闭通知声音
+ // mPushAgent.setNotificationPlaySound(MsgConstant.NOTIFICATION_PLAY_SDK_DISABLE);
+ // 通知声音由服务端控制
+ // mPushAgent.setNotificationPlaySound(MsgConstant.NOTIFICATION_PLAY_SERVER);
+
+ // mPushAgent.setNotificationPlayLights(MsgConstant.NOTIFICATION_PLAY_SDK_DISABLE);
+ // mPushAgent.setNotificationPlayVibrate(MsgConstant.NOTIFICATION_PLAY_SDK_DISABLE);
+
+ UmengMessageHandler messageHandler = new UmengMessageHandler() {
+
+ /**
+ * 通知的回调方法(通知送达时会回调)
+ */
+ @Override
+ public void dealWithNotificationMessage(Context context, UMessage msg) {
+ //调用super,会展示通知,不调用super,则不展示通知。
+ super.dealWithNotificationMessage(context, msg);
+ }
+
+ /**
+ * 自定义消息的回调方法
+ */
+ @Override
+ public void dealWithCustomMessage(final Context context, final UMessage msg) {
+ handler.post(new Runnable() {
+
+ @Override
+ public void run() {
+ // TODO Auto-generated method stub
+ // 对自定义消息的处理方式,点击或者忽略
+ boolean isClickOrDismissed = true;
+ if (isClickOrDismissed) {
+ //自定义消息的点击统计
+ UTrack.getInstance().trackMsgClick(msg);
+ } else {
+ //自定义消息的忽略统计
+ UTrack.getInstance().trackMsgDismissed(msg);
+ }
+ Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
+ }
+ });
+ }
+
+ /**
+ * 自定义通知栏样式的回调方法
+ */
+ @Override
+ public Notification getNotification(Context context, UMessage msg) {
+ switch (msg.builder_id) {
+ case 1:
+ Notification.Builder builder;
+ if (Build.VERSION.SDK_INT >= 26) {
+ NotificationChannel channel = UPushNotificationChannel.getDefaultMode(context);
+ builder = new Notification.Builder(context, channel.getId());
+ } else {
+ builder = new Notification.Builder(context);
+ }
+ RemoteViews myNotificationView = new RemoteViews(context.getPackageName(), R.layout.notification_view);
+ myNotificationView.setTextViewText(R.id.notification_title, msg.title);
+ myNotificationView.setTextViewText(R.id.notification_text, msg.text);
+ myNotificationView.setImageViewBitmap(R.id.notification_large_icon, getLargeIcon(context, msg));
+ myNotificationView.setImageViewResource(R.id.notification_small_icon, getSmallIconId(context, msg));
+ builder.setContent(myNotificationView)
+ .setSmallIcon(getSmallIconId(context, msg))
+ .setTicker(msg.ticker)
+ .setAutoCancel(true);
+ return builder.getNotification();
+ default:
+ //默认为0,若填写的builder_id并不存在,也使用默认。
+ return super.getNotification(context, msg);
+ }
+ }
+ };
+ pushAgent.setMessageHandler(messageHandler);
+
+ /*
+ * 自定义行为的回调处理,参考文档:高级功能-通知的展示及提醒-自定义通知打开动作
+ * UmengNotificationClickHandler是在BroadcastReceiver中被调用,故
+ * 如果需启动Activity,需添加Intent.FLAG_ACTIVITY_NEW_TASK
+ */
+ UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler() {
+
+ @Override
+ public void launchApp(Context context, UMessage msg) {
+ super.launchApp(context, msg);
+ }
+
+ @Override
+ public void openUrl(Context context, UMessage msg) {
+ super.openUrl(context, msg);
+ }
+
+ @Override
+ public void openActivity(Context context, UMessage msg) {
+ super.openActivity(context, msg);
+ }
+
+ @Override
+ public void dealWithCustomAction(Context context, UMessage msg) {
+ Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
+ }
+ };
+ //使用自定义的NotificationHandler
+ pushAgent.setNotificationClickHandler(notificationClickHandler);
+
+ //注册推送服务 每次调用register都会回调该接口
+ pushAgent.register(new UPushRegisterCallback() {
+ @Override
+ public void onSuccess(String deviceToken) {
+ Log.i(TAG, "device token: " + deviceToken);
+ context.sendBroadcast(new Intent(UPDATE_STATUS_ACTION));
+ }
+
+ @Override
+ public void onFailure(String s, String s1) {
+ Log.i(TAG, "register failed: " + s + " " + s1);
+ context.sendBroadcast(new Intent(UPDATE_STATUS_ACTION));
+ }
+ });
+
+ //使用完全自定义处理
+// pushAgent.setPushIntentServiceClass(UmengNotificationService.class);
+
+ //小米通道
+ //MiPushRegistar.register(this, XIAOMI_ID, XIAOMI_KEY);
+ //华为通道
+ //HuaWeiRegister.register(this);
+ //魅族通道
+ //MeizuRegister.register(this, MEIZU_APPID, MEIZU_APPKEY);
+ }
+
+}
diff --git a/app/src/main/java/com/umeng/soexample/douyinapi/DouYinEntryActivity.java b/app/src/main/java/com/umeng/soexample/douyinapi/DouYinEntryActivity.java
new file mode 100644
index 0000000..c6e7950
--- /dev/null
+++ b/app/src/main/java/com/umeng/soexample/douyinapi/DouYinEntryActivity.java
@@ -0,0 +1,6 @@
+package com.umeng.soexample.douyinapi;
+
+import com.umeng.socialize.douyin.DYCallbackActivity;
+
+public class DouYinEntryActivity extends DYCallbackActivity {
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/umeng/soexample/push/MipushTestActivity.java b/app/src/main/java/com/umeng/soexample/push/MipushTestActivity.java
index d28aaae..a130d21 100644
--- a/app/src/main/java/com/umeng/soexample/push/MipushTestActivity.java
+++ b/app/src/main/java/com/umeng/soexample/push/MipushTestActivity.java
@@ -1,15 +1,13 @@
package com.umeng.soexample.push;
-import android.content.Intent;
import android.os.Bundle;
-import android.text.TextUtils;
import android.widget.TextView;
import com.umeng.message.UmengNotifyClickActivity;
+import com.umeng.message.entity.UMessage;
import com.umeng.soexample.R;
-import org.android.agoo.common.AgooConstants;
public class MipushTestActivity extends UmengNotifyClickActivity {
- private static String TAG = MipushTestActivity.class.getName();
+
private TextView mipushTextView;
@Override
@@ -20,16 +18,14 @@ protected void onCreate(Bundle bundle) {
}
@Override
- public void onMessage(Intent intent) {
- super.onMessage(intent);
- final String body = intent.getStringExtra(AgooConstants.MESSAGE_BODY);
- if (!TextUtils.isEmpty(body)) {
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- mipushTextView.setText(body);
- }
- });
- }
+ protected void onMessage(final UMessage uMessage) {
+ super.onMessage(uMessage);
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ mipushTextView.setText(uMessage.getRaw().toString());
+ }
+ });
}
+
}
diff --git a/app/src/main/java/com/umeng/soexample/push/MyNotificationService.java b/app/src/main/java/com/umeng/soexample/push/MyNotificationService.java
index de662b3..f1510c8 100644
--- a/app/src/main/java/com/umeng/soexample/push/MyNotificationService.java
+++ b/app/src/main/java/com/umeng/soexample/push/MyNotificationService.java
@@ -3,16 +3,19 @@
import java.util.Random;
import android.app.Notification;
+import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
+import android.os.Build;
import android.os.IBinder;
+
import com.umeng.message.UTrack;
+import com.umeng.message.common.UPushNotificationChannel;
import com.umeng.message.entity.UMessage;
import com.umeng.soexample.R;
-import org.json.JSONException;
import org.json.JSONObject;
public class MyNotificationService extends Service {
@@ -33,11 +36,10 @@ public int onStartCommand(Intent intent, int flags, int startId) {
try {
UMessage msg = new UMessage(new JSONObject(message));
if (oldMessage != null) {
- UTrack.getInstance(getApplicationContext()).setClearPrevMessage(true);
- UTrack.getInstance(getApplicationContext()).trackMsgDismissed(oldMessage);
+ UTrack.getInstance().trackMsgDismissed(oldMessage);
}
showNotification(msg);
- } catch (JSONException e) {
+ } catch (Exception e) {
e.printStackTrace();
}
return super.onStartCommand(intent, flags, startId);
@@ -47,20 +49,30 @@ private void showNotification(UMessage msg) {
int id = new Random(System.nanoTime()).nextInt();
oldMessage = msg;
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
- manager.cancelAll();
- Notification.Builder mBuilder = new Notification.Builder(this);
- mBuilder.setContentTitle(msg.title)
+ try {
+ manager.cancelAll();
+ } catch (Exception ignored) {
+ }
+ Notification.Builder builder;
+ if (Build.VERSION.SDK_INT >= 26) {
+ NotificationChannel channel = UPushNotificationChannel.getDefaultMode(this);
+ builder = new Notification.Builder(this, channel.getId());
+ } else {
+ builder = new Notification.Builder(this);
+ }
+ builder.setContentTitle(msg.title)
.setContentText(msg.text)
.setTicker(msg.ticker)
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.umeng_push_notification_default_small_icon)
.setAutoCancel(true);
- Notification notification = mBuilder.getNotification();
+ Notification notification = builder.getNotification();
PendingIntent clickPendingIntent = getClickPendingIntent(this, msg);
PendingIntent dismissPendingIntent = getDismissPendingIntent(this, msg);
notification.deleteIntent = dismissPendingIntent;
notification.contentIntent = clickPendingIntent;
manager.notify(id, notification);
+ UTrack.getInstance().trackMsgShow(msg, notification);
}
public PendingIntent getClickPendingIntent(Context context, UMessage msg) {
diff --git a/app/src/main/java/com/umeng/soexample/push/NotificationBroadcast.java b/app/src/main/java/com/umeng/soexample/push/NotificationBroadcast.java
index 594a7c3..de45534 100644
--- a/app/src/main/java/com/umeng/soexample/push/NotificationBroadcast.java
+++ b/app/src/main/java/com/umeng/soexample/push/NotificationBroadcast.java
@@ -6,7 +6,6 @@
import android.util.Log;
import com.umeng.message.UTrack;
import com.umeng.message.entity.UMessage;
-import org.json.JSONException;
import org.json.JSONObject;
public class NotificationBroadcast extends BroadcastReceiver {
@@ -28,19 +27,15 @@ public void onReceive(Context context, Intent intent) {
switch (action) {
case ACTION_DISMISS:
Log.i(TAG, "dismiss notification");
- UTrack.getInstance(context).setClearPrevMessage(true);
- UTrack.getInstance(context).trackMsgDismissed(msg);
+ UTrack.getInstance().trackMsgDismissed(msg);
break;
case ACTION_CLICK:
Log.i(TAG, "click notification");
- UTrack.getInstance(context).setClearPrevMessage(true);
MyNotificationService.oldMessage = null;
- UTrack.getInstance(context).trackMsgClick(msg);
+ UTrack.getInstance().trackMsgClick(msg);
break;
}
//
- } catch (JSONException e) {
- e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/app/src/main/java/com/umeng/soexample/push/SplashTestActivity.java b/app/src/main/java/com/umeng/soexample/push/SplashTestActivity.java
index db84a07..09d0657 100644
--- a/app/src/main/java/com/umeng/soexample/push/SplashTestActivity.java
+++ b/app/src/main/java/com/umeng/soexample/push/SplashTestActivity.java
@@ -1,16 +1,111 @@
package com.umeng.soexample.push;
+import android.annotation.SuppressLint;
+import android.app.Dialog;
+import android.content.Intent;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.Window;
+import android.widget.TextView;
+
+import com.tencent.tauth.Tencent;
+import com.umeng.commonsdk.UMConfigure;
+import com.umeng.message.PushAgent;
import com.umeng.message.inapp.InAppMessageManager;
import com.umeng.message.inapp.UmengSplashMessageActivity;
+import com.umeng.soexample.HomeActivity;
+import com.umeng.soexample.R;
+import com.umeng.soexample.UmInitConfig;
+import com.umeng.soexample.share.SharePlatformActivity;
+import com.umeng.soexample.sp.SharedPreferencesHelper;
public class SplashTestActivity extends UmengSplashMessageActivity {
+ View inflate;
+ Dialog dialog;
+ SharedPreferencesHelper sharedPreferencesHelper;
@Override
public boolean onCustomPretreatment() {
- InAppMessageManager mInAppMessageManager = InAppMessageManager.getInstance(this);
- mInAppMessageManager.setInAppMsgDebugMode(true);
- mInAppMessageManager.setMainActivityPath("com.umeng.soexample.HomeActivity");
- return super.onCustomPretreatment();
+
+ sharedPreferencesHelper = new SharedPreferencesHelper(this, "umeng");
+
+ /*** sp中uminit为1已经同意隐私协议*/
+ if (sharedPreferencesHelper.getSharedPreference("uminit", "").equals("1")) {
+
+
+ /***
+ * 此时初始化在appcation中进行,这里不做任何友盟初始化操作,直接跳转activity
+ *
+ */
+ //推送全屏消息设置(非初始化操作,这是推送全屏消息设置)
+ InAppMessageManager mInAppMessageManager = InAppMessageManager.getInstance(SplashTestActivity.this);
+ mInAppMessageManager.setInAppMsgDebugMode(true);
+ //跳转homeactivity
+ mInAppMessageManager.setMainActivityPath("com.umeng.soexample.HomeActivity");
+
+ //推送平台多维度推送决策必须调用方法(需要同意隐私协议之后初始化完成调用)
+ PushAgent.getInstance(this).onAppStart();
+ return super.onCustomPretreatment();
+ } else {
+ /*** 隐私协议授权弹窗*/
+ dialog();
+
+ return true;
+ }
+
+
+ }
+
+
+ @SuppressLint("ResourceType")
+ public void dialog() {
+ dialog = new Dialog(this, R.style.dialog);
+ inflate = LayoutInflater.from(SplashTestActivity.this).inflate(R.layout.diaologlayout, null);
+ TextView succsebtn = (TextView) inflate.findViewById(R.id.succsebtn);
+ TextView canclebtn = (TextView) inflate.findViewById(R.id.caclebtn);
+
+ succsebtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ /*** uminit为1时代表已经同意隐私协议,sp记录当前状态*/
+ sharedPreferencesHelper.put("uminit", "1");
+ UMConfigure.submitPolicyGrantResult(getApplicationContext(), true);
+ /*** 友盟sdk正式初始化*/
+ UmInitConfig umInitConfig = new UmInitConfig();
+ umInitConfig.UMinit(getApplicationContext());
+ //QQ官方sdk授权
+ Tencent.setIsPermissionGranted(true);
+ //推送平台多维度推送决策必须调用方法(需要同意隐私协议之后初始化完成调用)
+ PushAgent.getInstance(SplashTestActivity.this).onAppStart();
+ //关闭弹窗
+ dialog.dismiss();
+
+ //跳转到HomeActivity
+ Intent intent = new Intent(SplashTestActivity.this, HomeActivity.class);
+ startActivity(intent);
+ finish();
+
+ }
+ });
+
+ canclebtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ dialog.dismiss();
+ //不同意隐私协议,退出app
+ UMConfigure.submitPolicyGrantResult(getApplicationContext(), false);
+ android.os.Process.killProcess(android.os.Process.myPid());
+
+ }
+ });
+
+ dialog.setContentView(inflate);
+ Window dialogWindow = dialog.getWindow();
+ dialogWindow.setGravity(Gravity.CENTER);
+
+ dialog.setCancelable(false);
+ dialog.show();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/umeng/soexample/push/UmengNotificationService.java b/app/src/main/java/com/umeng/soexample/push/UmengNotificationService.java
index e5a8a0f..2a863fc 100644
--- a/app/src/main/java/com/umeng/soexample/push/UmengNotificationService.java
+++ b/app/src/main/java/com/umeng/soexample/push/UmengNotificationService.java
@@ -9,11 +9,15 @@
public class UmengNotificationService extends UmengMessageService {
@Override
public void onMessage(Context context, Intent intent) {
- Log.i("UmengNotificationService", "onMessage");
- String message = intent.getStringExtra(AgooConstants.MESSAGE_BODY);
- Intent intent1 = new Intent();
- intent1.setClass(context, MyNotificationService.class);
- intent1.putExtra("UmengMsg", message);
- context.startService(intent1);
+ Log.i("UMNotificationService", "onMessage");
+ try {
+ String message = intent.getStringExtra(AgooConstants.MESSAGE_BODY);
+ Intent intent1 = new Intent();
+ intent1.setClass(context, MyNotificationService.class);
+ intent1.putExtra("UmengMsg", message);
+ context.startService(intent1);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
}
diff --git a/app/src/main/java/com/umeng/soexample/push/UpushActivity.java b/app/src/main/java/com/umeng/soexample/push/UpushActivity.java
index 684f69f..2745053 100644
--- a/app/src/main/java/com/umeng/soexample/push/UpushActivity.java
+++ b/app/src/main/java/com/umeng/soexample/push/UpushActivity.java
@@ -1,41 +1,39 @@
package com.umeng.soexample.push;
-import java.util.Hashtable;
-import java.util.List;
-
+import android.app.AppOpsManager;
+import android.app.NotificationManager;
import android.content.Context;
import android.content.SharedPreferences;
+import android.content.pm.ApplicationInfo;
+import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils;
-import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
+
+import com.umeng.commonsdk.utils.UMUtils;
import com.umeng.message.PushAgent;
-import com.umeng.message.UTrack;
-import com.umeng.message.common.UmengMessageDeviceConfig;
+import com.umeng.message.api.UPushAliasCallback;
+import com.umeng.message.api.UPushTagCallback;
import com.umeng.message.common.inter.ITagManager;
import com.umeng.message.common.inter.ITagManager.Result;
-import com.umeng.message.inapp.IUmengInAppMsgCloseCallback;
-import com.umeng.message.inapp.InAppMessageManager;
-import com.umeng.message.tag.TagManager;
-import com.umeng.message.tag.TagManager.TCallBack;
-import com.umeng.message.tag.TagManager.WeightedTagListCallBack;
import com.umeng.soexample.BaseActivity;
import com.umeng.soexample.R;
import com.umeng.soexample.push.notification.DebugNotification;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.List;
+
public class UpushActivity extends BaseActivity implements View.OnClickListener {
private static final String TAG = UpushActivity.class.getName();
private static final String TAG_REMAIN = "tag_remain";
- private static final String WEIGHTED_TAG_REMAIN = "weighted_tag_remain";
private EditText inputTag;
- private EditText inputWeightedTag;
- private EditText inputWeightedTagValue;
private EditText inputAlias;
private EditText inputAliasType;
@@ -60,23 +58,18 @@ protected void onCreate(Bundle savedInstanceState) {
//展示插屏消息
if (savedInstanceState == null) {
- showCardMessage();
+// showCardMessage();
}
}
private void initClickListener() {
inputTag = findViewById(R.id.etx_input_tag);
- inputWeightedTag = findViewById(R.id.etx_input_weighted_tag);
- inputWeightedTagValue = findViewById(R.id.etx_input_weighted_tag_value);
inputAlias = findViewById(R.id.etx_input_alias);
inputAliasType = findViewById(R.id.etx_input_alias_type);
tagRemain = findViewById(R.id.tv_tag_remain);
findViewById(R.id.btn_add_tag).setOnClickListener(this);
findViewById(R.id.btn_delete_tag).setOnClickListener(this);
findViewById(R.id.btn_show_tag).setOnClickListener(this);
- findViewById(R.id.btn_add_weighted_tag).setOnClickListener(this);
- findViewById(R.id.btn_delete_weighted_tag).setOnClickListener(this);
- findViewById(R.id.btn_show_weighted_tag).setOnClickListener(this);
findViewById(R.id.btn_add_alias).setOnClickListener(this);
findViewById(R.id.btn_delete_alias).setOnClickListener(this);
findViewById(R.id.btn_show_card_message).setOnClickListener(this);
@@ -91,44 +84,25 @@ public int getLayout() {
@Override
public void onClick(View view) {
- switch (view.getId()) {
- case R.id.btn_add_tag:
- addTag();
- break;
- case R.id.btn_delete_tag:
- deleteTag();
- break;
- case R.id.btn_show_tag:
- showTag();
- break;
- case R.id.btn_add_weighted_tag:
- addWeightedTag();
- break;
- case R.id.btn_delete_weighted_tag:
- deleteWeightedTag();
- break;
- case R.id.btn_show_weighted_tag:
- showWeightedTag();
- break;
- case R.id.btn_add_alias:
- addAlias();
- break;
- case R.id.btn_delete_alias:
- deleteAlias();
- break;
- case R.id.btn_set_alias:
- setAlias();
- break;
- case R.id.btn_show_card_message:
- showCardMessage();
- break;
- case R.id.btn_serialnet:
- serialnet();
- break;
- case R.id.btn_device_check:
- deviceCheck();
- break;
- default:
+ int id = view.getId();
+ if (id == R.id.btn_add_tag) {
+ addTag();
+ } else if (id == R.id.btn_delete_tag) {
+ deleteTag();
+ } else if (id == R.id.btn_show_tag) {
+ showTag();
+ } else if (id == R.id.btn_add_alias) {
+ addAlias();
+ } else if (id == R.id.btn_delete_alias) {
+ deleteAlias();
+ } else if (id == R.id.btn_set_alias) {
+ setAlias();
+ } else if (id == R.id.btn_show_card_message) {
+// showCardMessage();
+ } else if (id == R.id.btn_serialnet) {
+ serialnet();
+ } else if (id == R.id.btn_device_check) {
+ deviceCheck();
}
}
@@ -143,7 +117,7 @@ private void setAlias() {
Toast.makeText(this, "请输入alias type", Toast.LENGTH_SHORT).show();
return;
}
- mPushAgent.setAlias(alias, aliasType, new UTrack.ICallBack() {
+ mPushAgent.setAlias(alias, aliasType, new UPushAliasCallback() {
@Override
public void onMessage(boolean isSuccess, String message) {
handler.post(new Runnable() {
@@ -168,7 +142,7 @@ private void deleteAlias() {
Toast.makeText(this, "请输入alias type", Toast.LENGTH_SHORT).show();
return;
}
- mPushAgent.deleteAlias(alias, aliasType, new UTrack.ICallBack() {
+ mPushAgent.deleteAlias(alias, aliasType, new UPushAliasCallback() {
@Override
public void onMessage(boolean isSuccess, String message) {
handler.post(new Runnable() {
@@ -193,7 +167,7 @@ private void addAlias() {
Toast.makeText(this, "请先输入alias type", Toast.LENGTH_SHORT).show();
return;
}
- mPushAgent.addAlias(alias, aliasType, new UTrack.ICallBack() {
+ mPushAgent.addAlias(alias, aliasType, new UPushAliasCallback() {
@Override
public void onMessage(boolean isSuccess, String message) {
handler.post(new Runnable() {
@@ -207,97 +181,8 @@ public void run() {
});
}
- private void showWeightedTag() {
- mPushAgent.getTagManager().getWeightedTags(new WeightedTagListCallBack() {
- @Override
- public void onMessage(final boolean isSuccess, final Hashtable result) {
- handler.post(new Runnable() {
- @Override
- public void run() {
- if (isSuccess) {
- StringBuilder builder = new StringBuilder();
- for (String key : result.keySet()) {
- int value = result.get(key);
- builder.append(getString(R.string.push_tag));
- builder.append(key);
- builder.append(" ");
- builder.append(getString(R.string.push_tag_value));
- builder.append(value);
- builder.append("\n");
- }
- PushDialogFragment.newInstance(1, 1, getString(R.string.push_get_tags),
- builder.toString()).show(getFragmentManager(), "deleshowWeightedTagteTag");
- } else {
- PushDialogFragment.newInstance(1, 0, getString(R.string.push_get_tags),
- "").show(getFragmentManager(), "showWeightedTag");
- }
- }
- });
- }
- });
- }
-
- private void deleteWeightedTag() {
- mPushAgent.getTagManager().deleteWeightedTags(new TCallBack() {
- @Override
- public void onMessage(final boolean isSuccess, final Result result) {
- handler.post(new Runnable() {
- @Override
- public void run() {
- if (isSuccess) {
- sharedPref.edit().putInt(WEIGHTED_TAG_REMAIN, result.remain).apply();
- PushDialogFragment.newInstance(0, 1, getString(R.string.push_delete_success),
- inputWeightedTag.getText().toString()).show(getFragmentManager(), "deleteWeightedTag");
- inputWeightedTag.setText("");
- inputWeightedTagValue.setText("");
- } else {
- PushDialogFragment.newInstance(0, 0, getString(R.string.push_delete_fail),
- inputWeightedTag.getText().toString()).show(getFragmentManager(), "deleteWeightedTag");
- }
- }
- });
- }
- }, inputWeightedTag.getText().toString());
- }
-
- private void addWeightedTag() {
- if (TextUtils.isEmpty(inputWeightedTag.getText())) {
- Toast.makeText(this, "请输入weighted tag", Toast.LENGTH_SHORT).show();
- return;
- }
- if (TextUtils.isEmpty(inputWeightedTagValue.getText())) {
- Toast.makeText(this, "请输入value", Toast.LENGTH_SHORT).show();
- return;
- }
- final Hashtable table = new Hashtable();
- table.put(inputWeightedTag.getText().toString(), Integer.valueOf(inputWeightedTagValue.getText().toString()));
- mPushAgent.getTagManager().addWeightedTags(new TCallBack() {
- @Override
- public void onMessage(final boolean isSuccess, final Result result) {
- handler.post(new Runnable() {
- @Override
- public void run() {
- if (isSuccess) {
- sharedPref.edit().putInt(WEIGHTED_TAG_REMAIN, result.remain).apply();
- PushDialogFragment.newInstance(0, 1, getString(R.string.push_add_success),
- inputWeightedTag.getText().toString() + "\n" + getString(R.string.push_tag_value) +
- inputWeightedTagValue.getText().toString()).show(getFragmentManager(),
- "addWeightedTag");
- inputWeightedTag.setText("");
- inputWeightedTagValue.setText("");
- } else {
- PushDialogFragment.newInstance(0, 0, getString(R.string.push_add_fail),
- inputWeightedTag.getText().toString() + "\n" + getString(R.string.push_tag_value) + inputWeightedTagValue.getText()
- .toString()).show(getFragmentManager(), "addWeightedTag");
- }
- }
- });
- }
- }, table);
- }
-
private void showTag() {
- mPushAgent.getTagManager().getTags(new TagManager.TagListCallBack() {
+ mPushAgent.getTagManager().getTags(new UPushTagCallback>() {
@Override
public void onMessage(final boolean isSuccess, final List result) {
handler.post(new Runnable() {
@@ -315,10 +200,10 @@ public void run() {
}
}
PushDialogFragment.newInstance(1, 1, getString(R.string.push_get_tags),
- info.toString()).show(getFragmentManager(), "deleteTag");
+ info.toString()).show(getFragmentManager(), "deleteTag");
} else {
PushDialogFragment.newInstance(1, 0, getString(R.string.push_get_tags),
- "").show(getFragmentManager(), "deleteTag");
+ "").show(getFragmentManager(), "deleteTag");
}
}
});
@@ -332,7 +217,7 @@ private void deleteTag() {
Toast.makeText(this, "请先输入tag", Toast.LENGTH_SHORT).show();
return;
}
- mPushAgent.getTagManager().deleteTags(new TagManager.TCallBack() {
+ mPushAgent.getTagManager().deleteTags(new UPushTagCallback() {
@Override
public void onMessage(final boolean isSuccess, final ITagManager.Result result) {
handler.post(new Runnable() {
@@ -343,10 +228,10 @@ public void run() {
sharedPref.edit().putInt(TAG_REMAIN, result.remain).apply();
tagRemain.setText(String.valueOf(result.remain));
PushDialogFragment.newInstance(0, 1,
- getString(R.string.push_delete_success), tag).show(getFragmentManager(), "deleteTag");
+ getString(R.string.push_delete_success), tag).show(getFragmentManager(), "deleteTag");
} else {
PushDialogFragment.newInstance(0, 0,
- getString(R.string.push_delete_fail), tag).show(getFragmentManager(), "deleteTag");
+ getString(R.string.push_delete_fail), tag).show(getFragmentManager(), "deleteTag");
}
}
});
@@ -360,7 +245,7 @@ private void addTag() {
Toast.makeText(this, "请先输入tag", Toast.LENGTH_SHORT).show();
return;
}
- mPushAgent.getTagManager().addTags(new TagManager.TCallBack() {
+ mPushAgent.getTagManager().addTags(new UPushTagCallback() {
@Override
public void onMessage(final boolean isSuccess, final ITagManager.Result result) {
handler.post(new Runnable() {
@@ -371,10 +256,10 @@ public void run() {
sharedPref.edit().putInt(TAG_REMAIN, result.remain).apply();
tagRemain.setText(String.valueOf(result.remain));
PushDialogFragment.newInstance(0, 1, getString(R.string.push_add_success), tag).show(
- getFragmentManager(), "addTag");
+ getFragmentManager(), "addTag");
} else {
PushDialogFragment.newInstance(0, 0, getString(R.string.push_add_fail), tag).show(
- getFragmentManager(), "addTag");
+ getFragmentManager(), "addTag");
}
}
});
@@ -382,21 +267,21 @@ public void run() {
}, tag);
}
- private void showCardMessage() {
- InAppMessageManager.getInstance(this).showCardMessage(this, "main", new IUmengInAppMsgCloseCallback() {
- @Override
- public void onColse() {
- Log.i(TAG, "card message close");
- }
- });
- }
+// private void showCardMessage() {
+// InAppMessageManager.getInstance(this).showCardMessage(this, "main", new IUmengInAppMsgCloseCallback() {
+// @Override
+// public void onColse() {
+// Log.i(TAG, "card message close");
+// }
+// });
+// }
private void serialnet() {
- DebugNotification.transmission(UpushActivity.this, handler);
+ DebugNotification.transmission(UpushActivity.this);
}
private void deviceCheck() {
- String push_switch = UmengMessageDeviceConfig.isNotificationEnabled(this);
+ String push_switch = getNotificationSwitch(this);
String status;
switch (push_switch) {
case "true":
@@ -409,11 +294,41 @@ private void deviceCheck() {
status = push_switch;
break;
}
- String cpu = UmengMessageDeviceConfig.getCPU();
+ String cpu = UMUtils.getCPU();
String osVersion = android.os.Build.VERSION.RELEASE;
String info = getString(R.string.push_os_version) + osVersion + "\n" + getString(R.string.push_cpu_info) + cpu
- + "\n" + getString(R.string.push_system_notification_switch) + status;
+ + "\n" + getString(R.string.push_system_notification_switch) + status;
PushDialogFragment.newInstance(1, 0, getString(
- R.string.push_device_check), info).show(getFragmentManager(), "deviceCheck");
+ R.string.push_device_check), info).show(getFragmentManager(), "deviceCheck");
+ }
+
+
+ public static String getNotificationSwitch(Context context) {
+ String result = "unknown";
+ if (Build.VERSION.SDK_INT >= 24) {
+ try {
+ result = String.valueOf(((NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE)).areNotificationsEnabled());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else if (Build.VERSION.SDK_INT >= 19) {
+ try {
+ AppOpsManager opsManager = (AppOpsManager)context.getSystemService(Context.APP_OPS_SERVICE);
+ ApplicationInfo applicationInfo = context.getApplicationInfo();
+ String packageName = context.getApplicationContext().getPackageName();
+ int uid = applicationInfo.uid;
+ Class> clazz = Class.forName(AppOpsManager.class.getName());
+ Method method = clazz.getMethod("checkOpNoThrow", Integer.TYPE, Integer.TYPE, String.class);
+ Field field = clazz.getDeclaredField("OP_POST_NOTIFICATION");
+ Integer op = (Integer) field.get(opsManager);
+ if (op != null) {
+ Integer ret = (Integer) method.invoke(opsManager, op, uid, packageName);
+ result = String.valueOf(ret != null && ret == AppOpsManager.MODE_ALLOWED);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ return result;
}
}
diff --git a/app/src/main/java/com/umeng/soexample/push/notification/DebugNotification.java b/app/src/main/java/com/umeng/soexample/push/notification/DebugNotification.java
index 2669f8d..2b817b1 100644
--- a/app/src/main/java/com/umeng/soexample/push/notification/DebugNotification.java
+++ b/app/src/main/java/com/umeng/soexample/push/notification/DebugNotification.java
@@ -1,12 +1,20 @@
package com.umeng.soexample.push.notification;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
import java.security.MessageDigest;
import android.content.Context;
import android.os.Handler;
+import android.os.Looper;
import android.widget.Toast;
-import com.umeng.message.MessageSharedPrefs;
-import com.umeng.message.util.HttpRequest;
+
+import com.umeng.commonsdk.service.UMGlobalContext;
+import com.umeng.message.PushAgent;
+
import org.json.JSONObject;
public class DebugNotification {
@@ -16,11 +24,11 @@ public class DebugNotification {
*
* @param mContext
*/
- public static void transmission(final Context mContext, final Handler handler) {
+ public static void transmission(final Context mContext) {
try {
final AndroidUnicast unicast = new AndroidUnicast("59892f08310c9307b60023d0",
"xkqdlqwgkglgfdydyawb16etxilvmy3g");
- unicast.setDeviceToken(MessageSharedPrefs.getInstance(mContext).getDeviceToken());
+ unicast.setDeviceToken(PushAgent.getInstance(mContext).getRegistrationId());
unicast.setTicker("Android unicast ticker");
unicast.setTitle("Title");
unicast.setText("Demo透传测试");
@@ -32,7 +40,7 @@ public static void transmission(final Context mContext, final Handler handler) {
@Override
public void run() {
try {
- send(unicast, mContext, handler);
+ send(unicast);
} catch (Exception e) {
e.printStackTrace();
}
@@ -43,8 +51,8 @@ public void run() {
}
}
- public static void send(UmengNotification msg, final Context mContext, Handler handler) throws Exception {
- String timestamp = Integer.toString((int)(System.currentTimeMillis() / 1000));
+ public static void send(UmengNotification msg) throws Exception {
+ String timestamp = Integer.toString((int) (System.currentTimeMillis() / 1000));
msg.setPredefinedKeyValue("timestamp", timestamp);
String url = "http://msg.umeng.com/api/send";
@@ -54,27 +62,48 @@ public static void send(UmengNotification msg, final Context mContext, Handler h
String sign = md5(p_sign);
url = url + "?sign=" + sign;
- String response = HttpRequest.post(url).acceptJson()
- .send(postBody).body("UTF-8");
- JSONObject responseJson = new JSONObject(response);
- String ret = responseJson.getString("ret");
+ HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
+ connection.setRequestMethod("POST");
+ connection.setConnectTimeout(15000);
+ connection.setReadTimeout(15000);
+ connection.setRequestProperty("Accept", "application/json");
+ connection.setDoOutput(true);
+ OutputStream outputStream = connection.getOutputStream();
+ outputStream.write(postBody.getBytes());
+ outputStream.close();
+
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ InputStream inputStream = connection.getInputStream();
+ if (inputStream != null) {
+ byte[] buffer = new byte[8 * 1024];
+ int len;
+ while ((len = inputStream.read(buffer)) != -1) {
+ out.write(buffer, 0, len);
+ }
+ inputStream.close();
+ }
+ connection.disconnect();
+
+ JSONObject responseJson = new JSONObject(out.toString());
+ String ret = responseJson.getString("ret");
+ Runnable runnable;
if (!ret.equalsIgnoreCase("SUCCESS")) {
- handler.post(new Runnable() {
+ runnable = new Runnable() {
@Override
public void run() {
- Toast.makeText(mContext, "透传发送失败", Toast.LENGTH_LONG).show();
+ Toast.makeText(UMGlobalContext.getAppContext(), "发送失败", Toast.LENGTH_LONG).show();
}
- });
+ };
} else {
- handler.post(new Runnable() {
+ runnable = new Runnable() {
@Override
public void run() {
- Toast.makeText(mContext, "透传发送成功", Toast.LENGTH_LONG).show();
+ Toast.makeText(UMGlobalContext.getAppContext(), "发送成功", Toast.LENGTH_LONG).show();
}
- });
+ };
}
-
+ new Handler(Looper.getMainLooper()).post(runnable);
}
public static String md5(String string) {
diff --git a/app/src/main/java/com/umeng/soexample/share/AuthActivity.java b/app/src/main/java/com/umeng/soexample/share/AuthActivity.java
index 3345529..20e10d8 100644
--- a/app/src/main/java/com/umeng/soexample/share/AuthActivity.java
+++ b/app/src/main/java/com/umeng/soexample/share/AuthActivity.java
@@ -21,9 +21,9 @@ public class AuthActivity extends BaseActivity {
private ListView listView;
private AuthAdapter shareAdapter;
public ArrayList platforms = new ArrayList();
- private SHARE_MEDIA[] list = {SHARE_MEDIA.QQ, SHARE_MEDIA.SINA, SHARE_MEDIA.WEIXIN,
- SHARE_MEDIA.FACEBOOK, SHARE_MEDIA.TWITTER, SHARE_MEDIA.LINKEDIN, SHARE_MEDIA.DOUBAN, SHARE_MEDIA.RENREN, SHARE_MEDIA.KAKAO,
- SHARE_MEDIA.VKONTAKTE, SHARE_MEDIA.DROPBOX};
+ private SHARE_MEDIA[] list = {SHARE_MEDIA.QQ, SHARE_MEDIA.SINA, SHARE_MEDIA.WEIXIN,SHARE_MEDIA.WXWORK,
+ SHARE_MEDIA.FACEBOOK, SHARE_MEDIA.TWITTER, SHARE_MEDIA.LINKEDIN, SHARE_MEDIA.DOUBAN, SHARE_MEDIA.KAKAO,
+ SHARE_MEDIA.VKONTAKTE, SHARE_MEDIA.DROPBOX,SHARE_MEDIA.BYTEDANCE, SHARE_MEDIA.HONOR};
private ProgressDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
diff --git a/app/src/main/java/com/umeng/soexample/share/InfoActivity.java b/app/src/main/java/com/umeng/soexample/share/InfoActivity.java
index d3e95c3..fc6ed01 100644
--- a/app/src/main/java/com/umeng/soexample/share/InfoActivity.java
+++ b/app/src/main/java/com/umeng/soexample/share/InfoActivity.java
@@ -23,8 +23,8 @@
public class InfoActivity extends BaseActivity {
private LinearLayout container;
public ArrayList platforms = new ArrayList();
- private SHARE_MEDIA[] list = {SHARE_MEDIA.QQ,SHARE_MEDIA.SINA,SHARE_MEDIA.WEIXIN,
- SHARE_MEDIA.FACEBOOK,SHARE_MEDIA.LINKEDIN,SHARE_MEDIA.KAKAO,SHARE_MEDIA.VKONTAKTE,SHARE_MEDIA.DROPBOX};
+ private SHARE_MEDIA[] list = {SHARE_MEDIA.QQ,SHARE_MEDIA.SINA,SHARE_MEDIA.WEIXIN,SHARE_MEDIA.WXWORK,
+ SHARE_MEDIA.FACEBOOK,SHARE_MEDIA.LINKEDIN,SHARE_MEDIA.KAKAO,SHARE_MEDIA.VKONTAKTE,SHARE_MEDIA.DROPBOX,SHARE_MEDIA.BYTEDANCE, SHARE_MEDIA.HONOR};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/app/src/main/java/com/umeng/soexample/share/InfoDetailActivity.java b/app/src/main/java/com/umeng/soexample/share/InfoDetailActivity.java
index e8a5dc4..f4e41c3 100644
--- a/app/src/main/java/com/umeng/soexample/share/InfoDetailActivity.java
+++ b/app/src/main/java/com/umeng/soexample/share/InfoDetailActivity.java
@@ -5,12 +5,15 @@
import android.content.Intent;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
+import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.bean.SHARE_MEDIA;
+import com.umeng.socialize.handler.UMDYUtils;
+import com.umeng.socialize.handler.UMHonorUtils;
import com.umeng.soexample.BaseActivity;
import com.umeng.soexample.R;
@@ -39,12 +42,31 @@ public void onStart(SHARE_MEDIA share_media) {
}
@Override
- public void onComplete(SHARE_MEDIA share_media, int i, Map map) {
- StringBuilder sb = new StringBuilder();
- for (String key : map.keySet()) {
- sb.append(key).append(" : ").append(map.get(key)).append("\n");
+ public void onComplete(SHARE_MEDIA platform, int action, Map data) {
+ Log.e("InfoDetailActivity",data+"");
+ StringBuilder temp = new StringBuilder();
+ for (String key : data.keySet()) {
+ String v = data.get(key);
+ if (platform == SHARE_MEDIA.BYTEDANCE) {
+ if ("encrypt_mobile".equals(key)) {
+ try {
+ v = UMDYUtils.decryptMobileNumber(v);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ } else if (platform == SHARE_MEDIA.HONOR) {
+ if ("mobileNumber".equals(key)) {
+ try {
+ v = UMHonorUtils.decryptMobileNumber(v);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ temp.append(key).append(" : ").append(v).append("\n");
}
- result.setText(sb.toString());
+ result.setText(temp.toString());
}
@Override
diff --git a/app/src/main/java/com/umeng/soexample/share/SettingActivity.java b/app/src/main/java/com/umeng/soexample/share/SettingActivity.java
index f23d114..50bcc04 100644
--- a/app/src/main/java/com/umeng/soexample/share/SettingActivity.java
+++ b/app/src/main/java/com/umeng/soexample/share/SettingActivity.java
@@ -22,6 +22,7 @@
import com.umeng.soexample.R;
import com.umeng.soexample.share.utils.StyleUtil;
+
/**
* Created by wangfei on 2018/1/24.
*/
@@ -43,6 +44,8 @@ protected void onCreate(Bundle savedInstanceState) {
netContainer = (RelativeLayout)findViewById(R.id.net_container);
btnGroup = (RelativeLayout)findViewById(R.id.btnContainer);
sendBtn=findViewById(R.id.send);
+
+
cancelBtn=findViewById(R.id.cancel);
cancelBtn.setOnClickListener(new OnClickListener() {
@Override
@@ -96,6 +99,7 @@ public void onClick(View view) {
Toast.makeText(SettingActivity.this,"参数不完整",Toast.LENGTH_LONG).show();
}
+
}
});
diff --git a/app/src/main/java/com/umeng/soexample/share/ShareBoardActivity.java b/app/src/main/java/com/umeng/soexample/share/ShareBoardActivity.java
index c80032d..d5fea65 100644
--- a/app/src/main/java/com/umeng/soexample/share/ShareBoardActivity.java
+++ b/app/src/main/java/com/umeng/soexample/share/ShareBoardActivity.java
@@ -42,13 +42,13 @@ protected void onCreate(Bundle savedInstanceState) {
/*增加自定义按钮的分享面板*/
mShareAction = new ShareAction(ShareBoardActivity.this).setDisplayList(
SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE, SHARE_MEDIA.WEIXIN_FAVORITE,
+ SHARE_MEDIA.WXWORK,
SHARE_MEDIA.SINA, SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE,
- SHARE_MEDIA.ALIPAY, SHARE_MEDIA.RENREN, SHARE_MEDIA.DOUBAN,
+ SHARE_MEDIA.ALIPAY, SHARE_MEDIA.DOUBAN,
SHARE_MEDIA.SMS, SHARE_MEDIA.EMAIL, SHARE_MEDIA.YNOTE,
- SHARE_MEDIA.EVERNOTE, SHARE_MEDIA.LAIWANG, SHARE_MEDIA.LAIWANG_DYNAMIC,
- SHARE_MEDIA.LINKEDIN, SHARE_MEDIA.YIXIN, SHARE_MEDIA.YIXIN_CIRCLE,
- SHARE_MEDIA.TENCENT, SHARE_MEDIA.FACEBOOK, SHARE_MEDIA.TWITTER,
- SHARE_MEDIA.WHATSAPP, SHARE_MEDIA.GOOGLEPLUS, SHARE_MEDIA.LINE,
+ SHARE_MEDIA.EVERNOTE,
+ SHARE_MEDIA.LINKEDIN, SHARE_MEDIA.YIXIN, SHARE_MEDIA.YIXIN_CIRCLE, SHARE_MEDIA.FACEBOOK, SHARE_MEDIA.TWITTER,
+ SHARE_MEDIA.WHATSAPP, SHARE_MEDIA.LINE,
SHARE_MEDIA.INSTAGRAM, SHARE_MEDIA.KAKAO, SHARE_MEDIA.PINTEREST,
SHARE_MEDIA.POCKET, SHARE_MEDIA.TUMBLR, SHARE_MEDIA.FLICKR,
SHARE_MEDIA.FOURSQUARE, SHARE_MEDIA.MORE)
@@ -140,7 +140,6 @@ public void onResult(SHARE_MEDIA platform) {
&& platform != SHARE_MEDIA.PINTEREST
&& platform != SHARE_MEDIA.INSTAGRAM
- && platform != SHARE_MEDIA.GOOGLEPLUS
&& platform != SHARE_MEDIA.YNOTE
&& platform != SHARE_MEDIA.EVERNOTE) {
Toast.makeText(mActivity.get(), platform + " 分享成功啦", Toast.LENGTH_SHORT).show();
@@ -160,7 +159,6 @@ public void onError(SHARE_MEDIA platform, Throwable t) {
&& platform != SHARE_MEDIA.PINTEREST
&& platform != SHARE_MEDIA.INSTAGRAM
- && platform != SHARE_MEDIA.GOOGLEPLUS
&& platform != SHARE_MEDIA.YNOTE
&& platform != SHARE_MEDIA.EVERNOTE) {
Toast.makeText(mActivity.get(), platform + " 分享失败啦", Toast.LENGTH_SHORT).show();
diff --git a/app/src/main/java/com/umeng/soexample/share/ShareDetailActivity.java b/app/src/main/java/com/umeng/soexample/share/ShareDetailActivity.java
index 6088603..9d45919 100644
--- a/app/src/main/java/com/umeng/soexample/share/ShareDetailActivity.java
+++ b/app/src/main/java/com/umeng/soexample/share/ShareDetailActivity.java
@@ -4,11 +4,22 @@
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.util.ArrayList;
+import java.util.HashMap;
import android.app.ProgressDialog;
+import android.content.Context;
import android.content.Intent;
+import android.content.res.AssetManager;
+import android.graphics.Bitmap;
import android.os.Bundle;
+import android.os.Environment;
+import android.os.Handler;
+import android.os.Looper;
+import android.text.TextUtils;
+import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
@@ -23,6 +34,7 @@
import com.umeng.socialize.media.UMEmoji;
import com.umeng.socialize.media.UMImage;
import com.umeng.socialize.media.UMMin;
+import com.umeng.socialize.media.UMQQMini;
import com.umeng.socialize.media.UMVideo;
import com.umeng.socialize.media.UMWeb;
import com.umeng.socialize.media.UMusic;
@@ -33,6 +45,9 @@
import com.umeng.soexample.share.utils.StyleUtil;
import com.umeng.soexample.views.Item;
+import com.umeng.socialize.tracker.TrackerManager;
+import com.umeng.socialize.tracker.TrackerResultHandler;
+
/**
* Created by wangfei on 2018/1/23.
*/
@@ -44,15 +59,49 @@ public class ShareDetailActivity extends BaseActivity{
private LinearLayout container;
private ProgressDialog dialog;
+
+ // 演示企业微信 本地文件、本地视频文件分享
+ private File localfile;
+ private UMVideo localVideo;
+ private Context appContext;
+ private UMImage sinaImageLocal_1, sinaImageLocal_2;
+ private Handler H;
+
+ // 工具函数
+ private boolean writeFile(String filename, InputStream in) throws IOException
+ {
+ boolean bRet = true;
+ try {
+ OutputStream os = new FileOutputStream(filename);
+ byte[] buffer = new byte[4112];
+ int read;
+ while((read = in.read(buffer)) != -1)
+ {
+ os.write(buffer, 0, read);
+ }
+ in.close();
+ in = null;
+ os.flush();
+ os.close();
+ os = null;
+ } catch (FileNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ bRet = false;
+ }
+ return bRet;
+ }
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ appContext = this.getApplicationContext();
share_media = (SHARE_MEDIA) getIntent().getSerializableExtra("platform");
String name = getIntent().getStringExtra("name");
setTitle(name);
setBackVisibily();
initViews();
-
+ H = new Handler(Looper.getMainLooper());
}
private void initViews(){
LinearLayout container = (LinearLayout)findViewById(R.id.platform_container);
@@ -74,6 +123,8 @@ public void onClick(View view) {
shareImageNet();
}else if (style.startsWith(StyleUtil.WEB00.substring(0,2))){
shareUrl();
+ }else if (style.equals(StyleUtil.WEB000)){
+ shareUrlWithRootTrackCode(appContext);
}else if (style.startsWith(StyleUtil.MUSIC00.substring(0,2))){
shareMusic();
}else if (style.startsWith(StyleUtil.VIDEO00.substring(0,2))){
@@ -86,8 +137,14 @@ public void onClick(View view) {
shareEmoji();
}else if (style.equals(StyleUtil.FILE)){
shareFile();
+ }else if (style.equals(StyleUtil.LOCALVIDEO)) {
+ shareLocalVideo();
+ }else if (style.equals(StyleUtil.LOCALFILE)) {
+ shareLocalFile();
}else if (style.equals(StyleUtil.MULIMAGE)){
shareMulImage();
+ }else if (style.equals(StyleUtil.QQMiniApp)) {
+ shareQQMiniApp();
}
}
});
@@ -140,6 +197,71 @@ public void shareUrl(){
.setPlatform(share_media)
.setCallback(shareListener).share();
}
+
+ // ROOT Track Code获取功能见说明:https://developer.umeng.com/docs/128606/detail/200739
+ public void shareUrlWithRootTrackCode(final Context context) {
+ final String webUrl = Defaultcontent.url;
+ HashMap customParam = new HashMap();
+ customParam.put("userId", "123566");
+ customParam.put("website", "baidu.com");
+ customParam.put("0123456789abcdefg", "key_length_too_long");
+ customParam.put("值长度超限", "012345678901234567890123456789012345678901234567890123456789abcde");
+ customParam.put("valueIsEmpty", "");
+ String umid = TrackerManager.getUMID(context);
+ if (TextUtils.isEmpty(umid)) {
+ Toast.makeText(context,"UMID获取失败,请稍后重试!", Toast.LENGTH_LONG).show();
+ return;
+ }
+ TrackerManager.requestTrackerCode(context,
+ "59892f08310c9307b60023d0", umid, webUrl, null, customParam,
+ new TrackerResultHandler() {
+ @Override
+ public void codeGenerateSuccess(final String rootTrackCode) {
+ if (H != null) {
+ H.post(new Runnable() {
+ @Override
+ public void run() {
+ Toast.makeText(appContext,"获取rootTrackCode 成功了。", Toast.LENGTH_LONG).show();
+ String newWebUrl = webUrl + "?um_rtc=" + rootTrackCode;
+ UMWeb rootTrackWeb = new UMWeb(newWebUrl);
+ rootTrackWeb.setTitle("Web title with root track code.");
+ rootTrackWeb.setThumb(new UMImage(ShareDetailActivity.this, R.drawable.thumb ));
+ rootTrackWeb.setDescription("root track code sample.");
+
+ new ShareAction(ShareDetailActivity.this)
+ .withMedia(rootTrackWeb)
+ .setPlatform(share_media)
+ .setCallback(shareListener).share();
+ }
+ });
+ }
+
+ }
+
+ @Override
+ public void codeGenerateFailed(Throwable t) {
+ if (H != null) {
+ final String errorMsg = t.getMessage();
+ H.post(new Runnable() {
+ @Override
+ public void run() {
+ Toast.makeText(appContext,"获取rootTrackCode 失败了: " + errorMsg, Toast.LENGTH_LONG).show();
+ UMWeb web = new UMWeb(Defaultcontent.url);
+ web.setTitle("This is web title");
+ web.setThumb(new UMImage(ShareDetailActivity.this, R.drawable.thumb));
+ web.setDescription("my description");
+ new ShareAction(ShareDetailActivity.this)
+ .withMedia(web)
+ .setPlatform(share_media)
+ .setCallback(shareListener).share();
+ }
+ });
+ }
+
+ }
+ });
+ }
+
public void shareMusic(){
UMusic music = new UMusic(Defaultcontent.musicurl);
music.setTitle("This is music title");
@@ -159,6 +281,80 @@ public void shareVideo(){
.setPlatform(share_media)
.setCallback(shareListener).share();
}
+
+ public void shareLocalFile() {
+ if (localfile == null) {
+ String umengCacheDir = this.getExternalFilesDir(null) + File.separator + "umeng_cache";
+ File dir = new File(umengCacheDir);
+ if (!dir.exists()) {
+ dir.mkdir();
+ }
+ String localFilePath = umengCacheDir + File.separator + "localFile.txt";
+ localfile = new File(localFilePath);
+ if (!localfile.exists()) {
+ try {
+ localfile.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (SocializeUtils.File2byte(localfile).length <= 0) {
+ String content = "U-share分享";
+ byte[] contentInBytes = content.getBytes();
+ try {
+ FileOutputStream fop = new FileOutputStream(localfile);
+ fop.write(contentInBytes);
+ fop.flush();
+ fop.close();
+
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ }
+ }
+ new ShareAction(ShareDetailActivity.this)
+ .withFile(localfile)
+ .withText(Defaultcontent.text)
+ .withSubject(Defaultcontent.title)
+ .setPlatform(share_media)
+ .setCallback(shareListener).share();
+
+ }
+
+ public void shareLocalVideo() {
+ //UMVideo localVideo = new UMVideo();
+ if (localVideo == null) {
+ String umengCacheDir = this.getExternalFilesDir(null) + File.separator + "umeng_cache";
+ File dir = new File(umengCacheDir);
+ if (!dir.exists()) {
+ dir.mkdir();
+ }
+ String localVidemoFileName = "localvideo.mp4";
+ AssetManager am = this.getAssets();
+ try {
+ InputStream is = am.open(localVidemoFileName);
+
+ boolean result = writeFile(umengCacheDir + File.separator + localVidemoFileName, is);
+ if (result) {
+ File video = new File(umengCacheDir + File.separator + localVidemoFileName);
+ localVideo = new UMVideo(video);
+ }
+
+ } catch (Throwable e) {
+
+ }
+ }
+ new ShareAction(ShareDetailActivity.this)
+ .withMedia(localVideo)
+ .withText(Defaultcontent.text)
+ .withSubject(Defaultcontent.title)
+ .setPlatform(share_media)
+ .setCallback(shareListener).share();
+ }
+
public void shareTextAndImage(){
UMImage imagelocal = new UMImage(this, R.drawable.logo);
imagelocal.setThumb(new UMImage(this, R.drawable.thumb));
@@ -168,13 +364,34 @@ public void shareTextAndImage(){
.setCallback(shareListener).share();
}
public void shareMulImage(){
- UMImage imagelocal1 = new UMImage(this, R.drawable.logo);
- imagelocal1.setThumb(new UMImage(this, R.drawable.thumb));
- UMImage imagelocal2 = new UMImage(this, R.drawable.datu);
- imagelocal2.setThumb(new UMImage(this, R.drawable.datu));
- new ShareAction(ShareDetailActivity.this).withText("多图分享").withMedias(imagelocal1,imagelocal2 )
- .setPlatform(share_media)
- .setCallback(shareListener).share();
+
+
+ if(share_media == SHARE_MEDIA.SINA){
+ // 新浪微博多图分享仅支持共享路径 /data/data/应用包名/files/ 下图片文件
+ //将图片copy到/data/data/应用包名/files/下
+ prepareSinaImages();
+ File sinaImage_1 = new File(getExternalFilesDir(null) + "/datu.jpg");
+ File sinaImage_2 = new File(getExternalFilesDir(null) + "/logo.png");
+ sinaImageLocal_1 = new UMImage(this, sinaImage_1);
+ sinaImageLocal_2 = new UMImage(this, sinaImage_2);
+ // 通过FileProvider方式跨App分享图片时,
+
+ new ShareAction(ShareDetailActivity.this).withText("多图分享").withMedias(sinaImageLocal_1, sinaImageLocal_2)
+ .setPlatform(share_media)
+ .setCallback(shareListener).share();
+
+ }else {
+ UMImage imagelocal1 = new UMImage(this, R.drawable.logo);
+ imagelocal1.setThumb(new UMImage(this, R.drawable.thumb));
+ UMImage imagelocal2 = new UMImage(this, R.drawable.datu);
+ imagelocal2.setThumb(new UMImage(this, R.drawable.datu));
+
+ new ShareAction(ShareDetailActivity.this).withText("多图分享").withMedias(imagelocal1,imagelocal2 )
+ .setPlatform(share_media)
+ .setCallback(shareListener).share();
+ }
+
+
}
public void shareFile(){
File file = new File(this.getFilesDir()+"test.txt");
@@ -228,6 +445,21 @@ public void shareMINApp(){
.setPlatform(share_media)
.setCallback(shareListener).share();
}
+
+ public void shareQQMiniApp() {
+ UMQQMini qqMini = new UMQQMini(Defaultcontent.url);
+ qqMini.setThumb(new UMImage(this, Defaultcontent.imageurl)); // 缩略图支持网络图片和本地图片
+ qqMini.setTitle(Defaultcontent.title);
+ qqMini.setDescription(Defaultcontent.text);
+ qqMini.setMiniAppId("1110429485");
+ qqMini.setPath("pages/index/index");
+ new ShareAction(ShareDetailActivity.this)
+ .withMedia(qqMini)
+ .setPlatform(share_media)
+ .setCallback(shareListener).share();
+
+ }
+
@Override
public int getLayout() {
return R.layout.activity_usharedetail;
@@ -268,4 +500,37 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode,resultCode,data);
}
+
+
+ private void copyFile(final String fileName) {
+ final File file = new File(getExternalFilesDir(null).getPath() + "/" + fileName);
+ if (!file.exists()) {
+ Thread thread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ InputStream inputStream = getAssets().open(fileName);
+ OutputStream outputStream = new FileOutputStream(file);
+ byte[] buffer = new byte[1444];
+ int readSize;
+ while ((readSize = inputStream.read(buffer)) != 0) {
+ outputStream.write(buffer, 0, readSize);
+ }
+ inputStream.close();
+ outputStream.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ thread.start();
+ }
+ }
+ private void prepareSinaImages() {
+ copyFile("logo.png");
+ copyFile("datu.jpg");
+ }
+
+
+
}
diff --git a/app/src/main/java/com/umeng/soexample/share/SharePlatformActivity.java b/app/src/main/java/com/umeng/soexample/share/SharePlatformActivity.java
index 975ece2..85f92ff 100644
--- a/app/src/main/java/com/umeng/soexample/share/SharePlatformActivity.java
+++ b/app/src/main/java/com/umeng/soexample/share/SharePlatformActivity.java
@@ -63,29 +63,25 @@ private void initPlatforms(){
platforms.add(SHARE_MEDIA.WEIXIN.toSnsPlatform());
platforms.add(SHARE_MEDIA.WEIXIN_CIRCLE.toSnsPlatform());
platforms.add(SHARE_MEDIA.WEIXIN_FAVORITE.toSnsPlatform());
+ platforms.add(SHARE_MEDIA.WXWORK.toSnsPlatform());
platforms.add(SHARE_MEDIA.SINA.toSnsPlatform());
platforms.add(SHARE_MEDIA.QQ.toSnsPlatform());
platforms.add(SHARE_MEDIA.QZONE.toSnsPlatform());
platforms.add(SHARE_MEDIA.ALIPAY.toSnsPlatform());
platforms.add(SHARE_MEDIA.DINGTALK.toSnsPlatform());
- platforms.add(SHARE_MEDIA.RENREN.toSnsPlatform());
platforms.add(SHARE_MEDIA.DOUBAN.toSnsPlatform());
platforms.add(SHARE_MEDIA.SMS.toSnsPlatform());
platforms.add(SHARE_MEDIA.EMAIL.toSnsPlatform());
platforms.add(SHARE_MEDIA.YNOTE.toSnsPlatform());
platforms.add(SHARE_MEDIA.EVERNOTE.toSnsPlatform());
- platforms.add(SHARE_MEDIA.LAIWANG.toSnsPlatform());
- platforms.add(SHARE_MEDIA.LAIWANG_DYNAMIC.toSnsPlatform());
platforms.add(SHARE_MEDIA.LINKEDIN.toSnsPlatform());
platforms.add(SHARE_MEDIA.YIXIN.toSnsPlatform());
platforms.add(SHARE_MEDIA.YIXIN_CIRCLE.toSnsPlatform());
- platforms.add(SHARE_MEDIA.TENCENT.toSnsPlatform());
platforms.add(SHARE_MEDIA.FACEBOOK.toSnsPlatform());
platforms.add(SHARE_MEDIA.FACEBOOK_MESSAGER.toSnsPlatform());
platforms.add(SHARE_MEDIA.VKONTAKTE.toSnsPlatform());
platforms.add(SHARE_MEDIA.TWITTER.toSnsPlatform());
platforms.add(SHARE_MEDIA.WHATSAPP.toSnsPlatform());
- platforms.add(SHARE_MEDIA.GOOGLEPLUS.toSnsPlatform());
platforms.add(SHARE_MEDIA.LINE.toSnsPlatform());
platforms.add(SHARE_MEDIA.INSTAGRAM.toSnsPlatform());
platforms.add(SHARE_MEDIA.KAKAO.toSnsPlatform());
@@ -95,6 +91,9 @@ private void initPlatforms(){
platforms.add(SHARE_MEDIA.FLICKR.toSnsPlatform());
platforms.add(SHARE_MEDIA.FOURSQUARE.toSnsPlatform());
platforms.add(SHARE_MEDIA.DROPBOX.toSnsPlatform());
+ platforms.add(SHARE_MEDIA.BYTEDANCE.toSnsPlatform());
+ platforms.add(SHARE_MEDIA.BYTEDANCE_PUBLISH.toSnsPlatform());
+ platforms.add(SHARE_MEDIA.BYTEDANCE_FRIENDS.toSnsPlatform());
platforms.add(SHARE_MEDIA.MORE.toSnsPlatform());
}
diff --git a/app/src/main/java/com/umeng/soexample/share/utils/Defaultcontent.java b/app/src/main/java/com/umeng/soexample/share/utils/Defaultcontent.java
index af0a0a6..2726eb7 100644
--- a/app/src/main/java/com/umeng/soexample/share/utils/Defaultcontent.java
+++ b/app/src/main/java/com/umeng/soexample/share/utils/Defaultcontent.java
@@ -11,7 +11,7 @@ public class Defaultcontent {
public static String text = "欢迎使用【友盟+】社会化组件U-Share,SDK包最小,集成成本最低,助力您的产品开发、运营与推广";
//public static String text = "OuHlpMpiqYkHTFli4j1rU5bnfp5o1hHTzYU2ZPJIEWF2ClQYAcPHDygiKAt1mWA0pMh4t2Cf4Ddrdlv8xSbJejAOr0KwIaYWEuFLfwVXipaBGRDsx9d4ELDvGNFT6EthJgR6mA2oGxuDTfaxvP6Qv1Mw3Z3inQxjMKEkEIFGcYlz8HScgNOefsx0E90ignsMwsasY7hWtwCF9RVRjRJSLAUppOeZiwQL1PjyHPa0bTMRVyvoNBrEpo4IQeAVt02GamfAYmoZ8086h5AXCzvqTKrL6H7hozqtdC38rTqPJ1FFLKodMGVRCikmYjuSdJf3r6WqgArr1cbRFSFHE69JXvsm3wcfhJzNWFRH2K9DTLDSzz6juHKXWJPeQIUsQLnbOO14g4ZU6O2J8lKaXUcVLmzFDSg2JvPkd4AsvNgAw4TULf9QJ91iTIuV6WZAirNp1Rh7NRt76yawcjtaSkrMTnkBa7V8pDLQFGr4Dy8hXcLfbxwdFkjeKlHhpcOlNmba620zwNU80t2XsE74KFtW8qHUG4stI6wDkmTNGpL2bdoNnp6SjKUCgAKgGcwm84eLd3ZtJWimlL3HvAFa0Pihd0BUXLIoLAzkKI7evtEAIrRypbfMQIGvuIcw9WESmZfb30QBZWtRMrUgLnjzwAt5gv8UpNF02RKPsO2IhGvqkcHQVLVM6eUoSGqbQquoe9G7gh4zSzbZPW9ASMte7wJlypkMApkYlMo13378JfGLrDWoA5qpBPrRWsRcwEOVgfgPiUtYZPRV6EvZmtts6TS0ZszcJsJc8fBnuDJtRYGYSt5JDWsRDTXLgqIptjCZ03YKvlvaEBW35tl5OxwR0XhnnRzivzcEuNJYmlMy3bXU2BP6PH1MgJJoNy435SlcKW7XbJFjOENByYfYllazTtiwexryZ29UCJeyIbYsCmyBa82GthR9jg3S8yDKw6g36lifeUedhfsV0r42WO1GN6WNiLgr5k4ySoNOgm0a06xhHzTXSaruSggH1ik0M9KKa5qt96ADOMcLrRLdNTogufLoG3AxCjCaUoGUNTkY5RHpltgFemiixpOsHbDtXPefGKs3zWaUQAPNPcbZzlYMICssXQaZFr33gktEcfWTVPQ1UhpHWQbDkcRZSt9XTTBR7o0UhZjlxE2K27YoWMy2aXzsXYTnvLx7Nw92XTCnBqHuYIEEDFT69IPo4qOkWfv7YX7nHZZcJCUlvVZZ0mu095knDJFnsrezLXRkXvxQCvJ3TANPSm58JSiY5Dnq7Gr74xa77qE6xvvJsdrYvcOaSSyMuvck2Ul45msvxR5jFtzGTTxebNZJCTp0aSfzSPT86PWfPHOHNllghMqIIxMIStfPclZ5Itaa5rIYfva4sLye8QFCzRtVvslMSiurhVzlYkdSe45sdgQxzfgNi9oAvOP9jXBUIo3dcmnMIRMKUzesXx5PmVRyP2XCzcyFe2Q4xj8eVAJdLbvZmErFhrfi4Yu5yUnUVDzQj6PTrV6OXg0sQoJg0YxHNZ5sxNWXhdBCWFmcagiNYYzVZLqhD2w5nsuByMhSXybc8511lWuGn4PJ3JzE8pjvWDeYwVHfErT3enGMPjSR3VG0IWoI40xgmwprxOByvhaD1xXV8SpchDJApCa8z4lcYiDVJY9Ovi0WyHIMeJTBd8Lc786JsxXfGev28XxXyCDzDFl2Q5JosGQSKrBOpXWjlgOmjvUoEH5vJ6ZP8EFCBiYpEoay7eNXB5po3kyaxUpMK1GmDCcAVCJsDuL9QRAIklGObWawRqvjUIDwuXd1kpImF7gr1nMeOe8BTzWYZ5jKAZchbJqEaHNVQ6dQYONbEBcL4pBXWCbAeCQaz28rYF6zhqIR0M9TWvvgAw5fhrY7ND2qGBIU6T9xiV1yKAYaqozFgAcWIooUmH6SwCn9YrcKJlGhDpNWlVM9NunKiZTTykvoZhHsAWrHIBJSHh1UgdHOIkgdGnUJWaN9PcbFwFyTyBHHLPYC1wZzA6CBhL4bug6UfmKyFbuJ5KoaNke0QhVO7J7re2VjQPy0gp2PQ2nH2XNCvCNbwpIJjkC8PhLpVEuy1CyltvjPBM9z5IaOiuln5FthuD5TDQtgyiq4J8T3aiphiAXVUSYH619OAwmdKj0PNX5emfPsKxNlk04YazA8LOs7ZPf6vXyR1U8OIWb9k5LXnioUfIFcJl2Spv21aHDRFVgu3LzSwogq4JPa6DugVhFwBNbGoqy0XI344boljZmEKXcoafiHdPtxTGMc3XhJEchgwce53OWWQ3LczLGlts0L5rr5p6jXK0N3nu8fqnNE2F9wmO9m59poxWqNCAOxnzZQIQ2mePMfvVqtqRNqWzvD78eCEzLrRYaEXg7q8HlA5fY8YlgFixGXFJuFh8X49FfqbyO04fiFMKvEAHbHFJB9BwQr6V2CVP6vagms9ao3tutohv2ncC86biqfMxL6GmqS77GsAsdhMfuXixmlDjaR7NI3kTTGVRC0MixgkEkc8UnexlXBCN8L0EU08YYMm8zOAHv2pDRZ1QVjT0pgsq8q2BPWnihnsTU1CcPu5eYmdEOuf2hD3D90jld5Qrl0NxqfLsC8PXuMVc1UrKEvzKYnWOe4xVzNrH54LflKnTixZUNLhyOVi5pGiB1llFlv0z8T6H7fDqjo342GYko0r8vjNZ7rIevH4Xm61XtApFAMlcfuljfEdbwEzIwPFWvgM6N6vlZZhOifNfdshiW45U7G31BCW15L4RPOS746ITQpE22K1nwmOHnyVu5bE4tJoE16nR0bYiGf00JOSQSNf2sikrinGW1VynsjfHID1f5SLw35xGR6h3NZ4SjV8inBBDvZNeZbQrzLG2hbPK9HI9iXS9w7RXPpozQ8Uu6Xi7TabM2UD9UPXcynDtu24UqV98fQBDhYcESZJ1kdnUtZ7MQ9lqpEtl7h81OZZ3rQYBjzzFc99KnEOzUWpQH9Yfemlfmj3NDdQrS27cIoShnnh1aJrAKfdnUYC0mk5b1VepZgAXPrKjStP7VXnELg6O870i8q7ExUkJEydbhkDKR8ZoPOx4o1QnOIhAZCZutOXlSjTyTkGqgvCwQAGNXzNF8CDZDB8PouCqRRERP40ZqbRiAUc84HW4uFGVjtIAk6f9A90qLA5QDqSCRxBnUlzuJ6b0amNZzuJAOIQNR5sPME0AGZnOJgholhgsHrnu3WS57vILOYEEdVA5UrRwx9pYWYmpFrGU6iu1NqQUoFipkpId9dIwSnazCfcBNHJ2mEUmslyf3kWJry9jx0CGUdNunJiEVQjZYTtz7XbFsm2DJxc0up0iixdxWJMUO86crL36K6o7au8JqUl8dgDbvOoCEyqjozNKPggTNrmXNV5K1i7zsMLmFiIKDJiTJMcfjesA8qQ14Od0jp2qS7tvIzBwYs612eT3Ej9dPSooKgaQnB1LlOALRTg6mJVQ8lVKWf0BfaKLWxv3E3rrpv2aKtf94a62QUWt0Jcvhz6QfJlt2sjNvDDJ39uHcCbouSXiiBMEQC9aotJGcrefSFGJUxMwVCpmj8T1DKUFK9yefMzfyEuNkQ0FJMEBwprq7o37djbW6bPgatPYpCEJBgYcRuGJWhcSxLsrcDtUgtCXGoAmpoJqvdK8x2JfkLhpJ5s5OYsOv6L0CQjzF8wPOnPhZ00cEn5eI8O6Sb7Ybxdj7HUpfg6LcObMcGxIhwsabC0Y67DADIXgmK3KJRa8tcA78DOeBC7TrMgdYlZ6b5lA7oRGIyw9Wv0SiktxHvMkwkc4Miw08FApZ9JhOLfd8tpEe1C9FrLZnmW7UZYlf4XoXA6clO9KpnUqf5r73jfPDV8oONN1KOFWtqJUyGJykuo36alZYYZIq6qgNIQEin8TsaNtH93QuZlvzukvcoJ8qILIGvV6iJ7zcf6lBYWcoAcDPHd02O9IkKrvuPMEzZebyZxw1Rddjuo20Aqjkg07WXb1Neo6zqeDWMyJdQfC0UN0p0xU4yEyIQ8M1M2egy1G2NT4SQ3JsOpJ7ZSBWk3fAhPRZ5sCWKXBg3OYeXedoHy7mnZYW1x6yYEFxsgLEY1VdttfHh9IedsirrLfA4eCYlrPsWDk7ao2zRazOwMflyI8dVe85cVBiSFVeb5l9zwCbPBrefxzEO2QnWEhbKk0fZrqf44GBtKQbURms2seKWqDmbZnBA3LQSpmIRfprgq4JJ2iy1TqFpYtlm2tI6VRFo4NjncwERjDaB8rwxUZaUnPBS7SS3plv32GcLMhNg5OqwE6XL45ZhswPjfqQe0jHOEUGysTUBGGUXudfZxWQUnqz03tASxc90zEGKc2QlaBqiQEBmJHAVfnVWHmDOO66oD2LHHp49rPGVDIiG8tBxTc0rL2ImIiKZR9rkxvAoPSmciqZWCSU7jrv6DeYGReUNeFiCkQkGn5IemQUY5vd4iuGrNantAbojCM9PW4Fpl3ptjOjwCirTMGSh0xMt9nKiTXsthwgGYX5BZYF9X8QSUtTuvflK5wMhUV183V8t9FiRYJUFbaPROVhiaeBTTQJp8o0BL2Zdic243r8CrpuNaIJeR3xRAxKJr2Or7fukwxytRiKuuTORqYtMWVp9Xl12CueVTZYtUfsBCkL8awiQYcUpUazOt8JK0NyhQ0cTeWNIZEg8yfRBAqHsSpwRYt4hIFaozDPIHQJV3Nm41L6y6kG9TCn4YvagT6XPIkGl8tA3BKr9U3vlmP7TAkf1xOCw97tUzfMGqdTrJhcrTFFjIVSGsMVlgRQk3FmG3N2Xfoi8ZjgTp5iP6tmGZjQLS4PkNsZ45ePkFcMK8He6PAEmIQujKwTGOl8d9jbESYoGVQeqx0aNOt1BAe4j2sqHgMOR1ywbCplgkoSIEfV84O33lTF77d2ZZjemO9xhLiFjAfJAiblQVTfkcXXvbTjz4gcOPknzLsjaEGRHfQ9PekN3X5C9Vg8hyIbX3NL6Eash2zuTLJYQdApyyEeiQ5ZBhlAdHkM2Cp6NGPE4oKj9AIao7GAFrG2CwkddF0D5wJDo64w7dfKybPEpEEqO6VeDx7v5JvXgD945v79tAdPyqDVicilNKGY0X40hBGXgJuHAIPnbbPtln53fXYvzdstWANMA0I6lC8hkkV6rWZvxvChMmEuWdPJK0tV5lYysOIIVrENk1XKtxR1nbn8AyzJTgsaBWVfWt7O3YAwePIJ9KZ4dx3b0g67WIn58q8Tg3ZqBr7evQRpH1B3g994c5geKXl3yyxFmbLlcv0fGnCn4jWzLrGLiMOzyqHcaqMHhW3Lf89x58RJ1xAfwexAbm0fdDZ73dXvGrMSDPb7wX7LUvMhjrYlKtstiYZ21y07cpl1eZ6ddaMzKmCUrUE3bv5nljtG676uOjLqAaLhOM20NUTOMFcvdm0QPx2fcz0TEV5fF89evJF35a7i0hnlpQ9Y4EyGzDVGSRrLaQNfowXZnBL6KzfomEX4I5oA0nZ1zEWPovYAVSVTvUn6ZaGgZ9eKUMzntO9L8dLsD9lB8BByc0j7NglVNl5uHAeOH0yXQ638FbS6SREbennh4xXLip4Ge9Nh9zrSitzjACuCqe9V9j3bYABcw1sp9xh4x1yc9O3ipfknixEbaD0auuWpPe3aSvNwBddF28Qz33088RWEisnFb0w3bu85V7S860H3zUwmonbFvLb6Rm26P44eyOp7VGpHG8iGviZ05A5zAKpByOC7mtuLxP3h13G0RE9jlTc4CPxce86EyImxnAjDGquQvyBEu3qOPxmYNpW46JjmvKGiH3JKm23gjeAY8O2xG9OAxi1j4c0vXNSBz9GvmwtoxMrLB1Ydvqh0TL9wjddYB9tzRgK9bB6UB79vvpkQ59yt3auaTSWqvXVvQUO5QymQxi9hkTg8aUk4dmdx9gbpMe1WyuvemFzLtg7S62AoloGf6lXkO4M9JMvmB8iHwJx95rFT4MqhGvR0N0H6dxWM2CRSqdqceaauOpfJsFBrgfpyQ4Gbg";
public static String title = "【友盟+】社会化组件U-Share";
- public static String imageurl = "https://mobile.umeng.com/images/pic/home/social/img-1.png";
+ public static String imageurl = "https://img.alicdn.com/tfs/TB1RDFDurr1gK0jSZFDXXb9yVXa-1120-460.jpg";
// public static String imageurl = "https://img.dawuhanmedia.com/liveimg/41/1490773976999103661055569.jpg";
public static String videourl = "http://video.sina.com.cn/p/sports/2020-01-15/detail-iihnzhha2647094.d.html";
public static String musicurl = "https://y.qq.com/n/yqq/song/108782194_num.html?ADTAG=h5_playsong&no_redirect=1";
diff --git a/app/src/main/java/com/umeng/soexample/share/utils/StyleUtil.java b/app/src/main/java/com/umeng/soexample/share/utils/StyleUtil.java
index f465e98..2a0cea1 100644
--- a/app/src/main/java/com/umeng/soexample/share/utils/StyleUtil.java
+++ b/app/src/main/java/com/umeng/soexample/share/utils/StyleUtil.java
@@ -27,9 +27,13 @@ public class StyleUtil {
public static String WEB11= "链接(有标题,有内容)";
public static String WEB10= "链接(有标题,无内容)";
public static String WEB01= "链接(无标题,有内容)";
+ public static String WEB000 = "链路跟踪链接 (带root track code)";
public static String EMOJI= "微信表情";
public static String FILE= "文件";
+ public static String LOCALVIDEO = "本地视频";
+ public static String LOCALFILE = "本地文件";
public static String MINAPP= "小程序(测试)";
+ public static String QQMiniApp = "QQ小程序";
public static void initStyles(SHARE_MEDIA share_media, ArrayList styles){
styles.clear();
if (share_media == SHARE_MEDIA.QQ){
@@ -38,6 +42,7 @@ public static void initStyles(SHARE_MEDIA share_media, ArrayList styles)
styles.add(StyleUtil.WEB11);
styles.add(StyleUtil.MUSIC11);
styles.add(StyleUtil.VIDEO11);
+ styles.add(StyleUtil.QQMiniApp);
}else if (share_media == SHARE_MEDIA.QZONE){
styles.add(StyleUtil.TEXT);
styles.add(StyleUtil.IMAGELOCAL);
@@ -60,6 +65,7 @@ public static void initStyles(SHARE_MEDIA share_media, ArrayList styles)
styles.add(StyleUtil.IMAGELOCAL);
styles.add(StyleUtil.IMAGEURL);
styles.add(StyleUtil.WEB11);
+ styles.add(StyleUtil.WEB000);
styles.add(StyleUtil.MUSIC11);
styles.add(StyleUtil.VIDEO11);
styles.add(StyleUtil.EMOJI);
@@ -80,14 +86,15 @@ else if (share_media == SHARE_MEDIA.WEIXIN_FAVORITE){
styles.add(StyleUtil.WEB11);
styles.add(StyleUtil.MUSIC11);
styles.add(StyleUtil.VIDEO11);
-
- } else if (share_media == SHARE_MEDIA.TENCENT){
+ }
+ else if (share_media == SHARE_MEDIA.WXWORK) {
+ // 企业微信
styles.add(StyleUtil.TEXT);
styles.add(StyleUtil.IMAGELOCAL);
styles.add(StyleUtil.IMAGEURL);
styles.add(StyleUtil.WEB11);
- styles.add(StyleUtil.MUSIC11);
- styles.add(StyleUtil.VIDEO11);
+ styles.add(StyleUtil.LOCALVIDEO);
+ styles.add(StyleUtil.LOCALFILE);
} else if (share_media == SHARE_MEDIA.DOUBAN){
styles.add(StyleUtil.TEXT);
styles.add(StyleUtil.TEXTANDIMAGE);
@@ -96,14 +103,6 @@ else if (share_media == SHARE_MEDIA.WEIXIN_FAVORITE){
styles.add(StyleUtil.WEB11);
styles.add(StyleUtil.MUSIC11);
styles.add(StyleUtil.VIDEO11);
- }else if (share_media == SHARE_MEDIA.RENREN){
- styles.add(StyleUtil.TEXT);
- styles.add(StyleUtil.TEXTANDIMAGE);
- styles.add(StyleUtil.IMAGELOCAL);
- styles.add(StyleUtil.IMAGEURL);
- styles.add(StyleUtil.WEB11);
- styles.add(StyleUtil.MUSIC11);
- styles.add(StyleUtil.VIDEO11);
}else if (share_media == SHARE_MEDIA.ALIPAY){
styles.add(StyleUtil.TEXT);
styles.add(StyleUtil.IMAGELOCAL);
@@ -115,7 +114,6 @@ else if (share_media == SHARE_MEDIA.WEIXIN_FAVORITE){
styles.add(StyleUtil.IMAGELOCAL);
styles.add(StyleUtil.IMAGEURL);
styles.add(StyleUtil.WEB11);
- styles.add(StyleUtil.VIDEO11);
}else if (share_media == SHARE_MEDIA.FACEBOOK_MESSAGER){
styles.add(StyleUtil.IMAGELOCAL);
styles.add(StyleUtil.IMAGEURL);
@@ -150,20 +148,6 @@ else if (share_media == SHARE_MEDIA.WEIXIN_FAVORITE){
styles.add(StyleUtil.WEB11);
styles.add(StyleUtil.MUSIC11);
styles.add(StyleUtil.VIDEO11);
- }else if (share_media == SHARE_MEDIA.LAIWANG){
-
- // styles.add(StyleUtil.IMAGELOCAL);
- // styles.add(StyleUtil.IMAGEURL);
- styles.add(StyleUtil.WEB11);
- styles.add(StyleUtil.MUSIC11);
- styles.add(StyleUtil.VIDEO11);
- }else if (share_media == SHARE_MEDIA.LAIWANG_DYNAMIC){
- //
- // styles.add(StyleUtil.IMAGELOCAL);
- // styles.add(StyleUtil.IMAGEURL);
- styles.add(StyleUtil.WEB11);
- styles.add(StyleUtil.MUSIC11);
- styles.add(StyleUtil.VIDEO11);
}else if (share_media == SHARE_MEDIA.INSTAGRAM){
styles.add(StyleUtil.IMAGELOCAL);
styles.add(StyleUtil.IMAGEURL);
@@ -190,11 +174,6 @@ else if (share_media == SHARE_MEDIA.WEIXIN_FAVORITE){
styles.add(StyleUtil.IMAGELOCAL);
styles.add(StyleUtil.IMAGEURL);
styles.add(StyleUtil.TEXTANDIMAGE);
- }else if (share_media == SHARE_MEDIA.GOOGLEPLUS){
- styles.add(StyleUtil.TEXT);
- styles.add(StyleUtil.IMAGELOCAL);
- styles.add(StyleUtil.IMAGEURL);
- styles.add(StyleUtil.TEXTANDIMAGE);
}else if (share_media == SHARE_MEDIA.EVERNOTE){
styles.add(StyleUtil.TEXT);
styles.add(StyleUtil.IMAGELOCAL);
@@ -243,7 +222,17 @@ else if (share_media == SHARE_MEDIA.WEIXIN_FAVORITE){
}else if (share_media == SHARE_MEDIA.DROPBOX) {
styles.add(StyleUtil.IMAGELOCAL);
styles.add(StyleUtil.IMAGEURL);
+ } else if (share_media == SHARE_MEDIA.BYTEDANCE) {
+ styles.add(StyleUtil.IMAGELOCAL);
+ styles.add(StyleUtil.MULIMAGE);
+ styles.add(StyleUtil.IMAGEURL);
+ styles.add(StyleUtil.LOCALVIDEO);
+ } else if (share_media == SHARE_MEDIA.BYTEDANCE_PUBLISH) {
+ styles.add(StyleUtil.LOCALVIDEO);
+ } else if (share_media == SHARE_MEDIA.BYTEDANCE_FRIENDS) {
+ styles.add(StyleUtil.IMAGELOCAL);
+ styles.add(StyleUtil.IMAGEURL);
+ styles.add(StyleUtil.WEB11);
}
-
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/umeng/soexample/share/views/AuthAdapter.java b/app/src/main/java/com/umeng/soexample/share/views/AuthAdapter.java
index 694fe2a..05580ec 100644
--- a/app/src/main/java/com/umeng/soexample/share/views/AuthAdapter.java
+++ b/app/src/main/java/com/umeng/soexample/share/views/AuthAdapter.java
@@ -96,20 +96,35 @@ public void onStart(SHARE_MEDIA platform) {
@Override
public void onComplete(SHARE_MEDIA platform, int action, Map data) {
SocializeUtils.safeCloseDialog(dialog);
- Toast.makeText(mContext, "成功了", Toast.LENGTH_LONG).show();
- notifyDataSetChanged();
+ mActivity.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ Toast.makeText(mContext, "成功了", Toast.LENGTH_LONG).show();
+ notifyDataSetChanged();
+ }
+ });
}
@Override
public void onError(SHARE_MEDIA platform, int action, Throwable t) {
SocializeUtils.safeCloseDialog(dialog);
- Toast.makeText(mContext, "失败:" + t.getMessage(), Toast.LENGTH_LONG).show();
+ mActivity.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ Toast.makeText(mContext, "失败:" + t.getMessage(), Toast.LENGTH_LONG).show();
+ }
+ });
}
@Override
public void onCancel(SHARE_MEDIA platform, int action) {
SocializeUtils.safeCloseDialog(dialog);
- Toast.makeText(mContext, "取消了", Toast.LENGTH_LONG).show();
+ mActivity.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ Toast.makeText(mContext, "取消了", Toast.LENGTH_LONG).show();
+ }
+ });
}
};
}
diff --git a/app/src/main/java/com/umeng/soexample/sp/SharedPreferencesHelper.java b/app/src/main/java/com/umeng/soexample/sp/SharedPreferencesHelper.java
new file mode 100644
index 0000000..9ed0c31
--- /dev/null
+++ b/app/src/main/java/com/umeng/soexample/sp/SharedPreferencesHelper.java
@@ -0,0 +1,89 @@
+package com.umeng.soexample.sp;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+import java.util.Map;
+
+public class SharedPreferencesHelper {
+ private SharedPreferences sharedPreferences;
+ /*
+ * 保存手机里面的名字
+ */private SharedPreferences.Editor editor;
+
+ public SharedPreferencesHelper(Context context, String FILE_NAME) {
+ sharedPreferences = context.getSharedPreferences(FILE_NAME,
+ Context.MODE_PRIVATE);
+ editor = sharedPreferences.edit();
+ }
+
+
+ /**
+ * 存储
+ */
+ public void put(String key, Object object) {
+ if (object instanceof String) {
+ editor.putString(key, (String) object);
+ } else if (object instanceof Integer) {
+ editor.putInt(key, (Integer) object);
+ } else if (object instanceof Boolean) {
+ editor.putBoolean(key, (Boolean) object);
+ } else if (object instanceof Float) {
+ editor.putFloat(key, (Float) object);
+ } else if (object instanceof Long) {
+ editor.putLong(key, (Long) object);
+ } else {
+ editor.putString(key, object.toString());
+ }
+ editor.commit();
+ }
+
+ /**
+ * 获取保存的数据
+ */
+ public Object getSharedPreference(String key, Object defaultObject) {
+ if (defaultObject instanceof String) {
+ return sharedPreferences.getString(key, (String) defaultObject);
+ } else if (defaultObject instanceof Integer) {
+ return sharedPreferences.getInt(key, (Integer) defaultObject);
+ } else if (defaultObject instanceof Boolean) {
+ return sharedPreferences.getBoolean(key, (Boolean) defaultObject);
+ } else if (defaultObject instanceof Float) {
+ return sharedPreferences.getFloat(key, (Float) defaultObject);
+ } else if (defaultObject instanceof Long) {
+ return sharedPreferences.getLong(key, (Long) defaultObject);
+ } else {
+ return sharedPreferences.getString(key, null);
+ }
+ }
+
+ /**
+ * 移除某个key值已经对应的值
+ */
+ public void remove(String key) {
+ editor.remove(key);
+ editor.commit();
+ }
+
+ /**
+ * 清除所有数据
+ */
+ public void clear() {
+ editor.clear();
+ editor.commit();
+ }
+
+ /**
+ * 查询某个key是否存在
+ */
+ public Boolean contain(String key) {
+ return sharedPreferences.contains(key);
+ }
+
+ /**
+ * 返回所有的键值对
+ */
+ public Map getAll() {
+ return sharedPreferences.getAll();
+ }
+}
diff --git a/app/src/main/java/com/umeng/soexample/wxapi/WXEntryActivity.java b/app/src/main/java/com/umeng/soexample/wxapi/WXEntryActivity.java
index ffb8dc3..f16859e 100644
--- a/app/src/main/java/com/umeng/soexample/wxapi/WXEntryActivity.java
+++ b/app/src/main/java/com/umeng/soexample/wxapi/WXEntryActivity.java
@@ -6,6 +6,4 @@
public class WXEntryActivity extends WXCallbackActivity {
-
-
}
diff --git a/app/src/main/res/layout/activity_upush.xml b/app/src/main/res/layout/activity_upush.xml
index 1be4842..ef87125 100644
--- a/app/src/main/res/layout/activity_upush.xml
+++ b/app/src/main/res/layout/activity_upush.xml
@@ -125,117 +125,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/functitle.xml b/app/src/main/res/layout/functitle.xml
index d166992..bf56c19 100644
--- a/app/src/main/res/layout/functitle.xml
+++ b/app/src/main/res/layout/functitle.xml
@@ -11,7 +11,6 @@
android:text="题目"
android:id="@+id/item_title"
android:layout_centerVertical="true"
- android:layout_toRightOf="@id/item_icon"
android:layout_marginLeft="16dp"
android:textColor="@color/textcolor"
android:layout_height="wrap_content" />
diff --git a/app/src/main/res/layout/umeng_custom_card_message.xml b/app/src/main/res/layout/umeng_custom_card_message.xml
new file mode 100644
index 0000000..4ceab97
--- /dev/null
+++ b/app/src/main/res/layout/umeng_custom_card_message.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/raw/umeng_push_notification_default_sound.mp3 b/app/src/main/res/raw/umeng_push_notification_default_sound.mp3
new file mode 100644
index 0000000..3b17e28
Binary files /dev/null and b/app/src/main/res/raw/umeng_push_notification_default_sound.mp3 differ
diff --git a/app/src/main/res/values/style.xml b/app/src/main/res/values/style.xml
index ad8cdb2..3a8b60d 100644
--- a/app/src/main/res/values/style.xml
+++ b/app/src/main/res/values/style.xml
@@ -13,4 +13,13 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/file_paths.xml b/app/src/main/res/xml/file_paths.xml
deleted file mode 100644
index 25318e6..0000000
--- a/app/src/main/res/xml/file_paths.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/xml/filepaths.xml b/app/src/main/res/xml/filepaths.xml
new file mode 100644
index 0000000..16fcb0e
--- /dev/null
+++ b/app/src/main/res/xml/filepaths.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/network_security_config.xml b/app/src/main/res/xml/network_security_config.xml
index e1eb89e..3a29ab0 100644
--- a/app/src/main/res/xml/network_security_config.xml
+++ b/app/src/main/res/xml/network_security_config.xml
@@ -1,5 +1,6 @@
+
diff --git a/build.gradle b/build.gradle
index c8c5473..f5ee06b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,23 +1,30 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-
buildscript {
repositories {
- jcenter()
- maven { url "https://dl.bintray.com/thelasterstar/maven/" }
+ google()
+ mavenCentral()
+ maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
+ maven { url 'https://artifact.bytedance.com/repository/AwemeOpenSDK' }
+ maven {
+ url 'http://www.idescout.com/maven/repo/'
+ }
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.3.3'
-
- // NOTE: Do not place your application dependencies here; they belong
- // in the individual module build.gradle files
+ classpath 'com.android.tools.build:gradle:4.1.3'
}
}
allprojects {
repositories {
- jcenter()
- maven { url "https://dl.bintray.com/thelasterstar/maven/" }
+ google()
+ mavenCentral()
+ maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
+ maven { url 'https://artifact.bytedance.com/repository/AwemeOpenSDK' }
}
+
+// tasks.withType(JavaCompile) {
+// sourceCompatibility = 1.8
+// targetCompatibility = 1.8
+// }
}
task clean(type: Delete) {
diff --git a/gradle.properties b/gradle.properties
index aac7c9b..4025efa 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -15,3 +15,4 @@ org.gradle.jvmargs=-Xmx1536m
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
+android.injected.testOnly=false
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 4916797..227b9e4 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Mon Jan 22 15:50:56 CST 2018
+#Thu Aug 04 16:40:02 CST 2022
distributionBase=GRADLE_USER_HOME
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip
distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
+zipStoreBase=GRADLE_USER_HOME
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/share/main/libs/umeng-share-core-7.3.7.jar b/share/main/libs/umeng-share-core-7.3.7.jar
new file mode 100644
index 0000000..4f6f5e8
Binary files /dev/null and b/share/main/libs/umeng-share-core-7.3.7.jar differ
diff --git "a/share/platforms/QQ\345\256\214\346\225\264\347\211\210/libs/open_sdk_3.5.16.4_r8c01346_lite.jar" "b/share/platforms/QQ\345\256\214\346\225\264\347\211\210/libs/open_sdk_3.5.16.4_r8c01346_lite.jar"
new file mode 100644
index 0000000..0cde6d6
Binary files /dev/null and "b/share/platforms/QQ\345\256\214\346\225\264\347\211\210/libs/open_sdk_3.5.16.4_r8c01346_lite.jar" differ
diff --git "a/share/platforms/QQ\345\256\214\346\225\264\347\211\210/libs/umeng-share-QQ-full-7.3.7.jar" "b/share/platforms/QQ\345\256\214\346\225\264\347\211\210/libs/umeng-share-QQ-full-7.3.7.jar"
new file mode 100644
index 0000000..e22e46d
Binary files /dev/null and "b/share/platforms/QQ\345\256\214\346\225\264\347\211\210/libs/umeng-share-QQ-full-7.3.7.jar" differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_qq.png "b/share/platforms/QQ\345\256\214\346\225\264\347\211\210/res/drawable/umeng_socialize_qq.png"
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_qq.png
rename to "share/platforms/QQ\345\256\214\346\225\264\347\211\210/res/drawable/umeng_socialize_qq.png"
diff --git a/UMLibrary/res/drawable/umeng_socialize_qzone.png "b/share/platforms/QQ\345\256\214\346\225\264\347\211\210/res/drawable/umeng_socialize_qzone.png"
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_qzone.png
rename to "share/platforms/QQ\345\256\214\346\225\264\347\211\210/res/drawable/umeng_socialize_qzone.png"
diff --git a/UMLibrary/libs/libapshare20161108.jar b/share/platforms/alipay/libs/libapshare20161108.jar
old mode 100644
new mode 100755
similarity index 100%
rename from UMLibrary/libs/libapshare20161108.jar
rename to share/platforms/alipay/libs/libapshare20161108.jar
diff --git a/share/platforms/alipay/libs/umeng-share-alipay-7.3.7.jar b/share/platforms/alipay/libs/umeng-share-alipay-7.3.7.jar
new file mode 100644
index 0000000..3ce4002
Binary files /dev/null and b/share/platforms/alipay/libs/umeng-share-alipay-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_alipay.png b/share/platforms/alipay/res/drawable/umeng_socialize_alipay.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_alipay.png
rename to share/platforms/alipay/res/drawable/umeng_socialize_alipay.png
diff --git a/share/platforms/alipay/src/apshare/ShareEntryActivity.java b/share/platforms/alipay/src/apshare/ShareEntryActivity.java
new file mode 100644
index 0000000..5d016c5
--- /dev/null
+++ b/share/platforms/alipay/src/apshare/ShareEntryActivity.java
@@ -0,0 +1,6 @@
+package com.umeng.soexample.apshare;
+
+import com.umeng.socialize.media.ShareCallbackActivity;
+
+public class ShareEntryActivity extends ShareCallbackActivity {
+}
\ No newline at end of file
diff --git a/share/platforms/bytedance/libs/umeng-share-bytedance-7.3.7.jar b/share/platforms/bytedance/libs/umeng-share-bytedance-7.3.7.jar
new file mode 100644
index 0000000..a4d0336
Binary files /dev/null and b/share/platforms/bytedance/libs/umeng-share-bytedance-7.3.7.jar differ
diff --git a/share/platforms/bytedance/res/drawable/umeng_socialize_bytedance.png b/share/platforms/bytedance/res/drawable/umeng_socialize_bytedance.png
new file mode 100644
index 0000000..80918b8
Binary files /dev/null and b/share/platforms/bytedance/res/drawable/umeng_socialize_bytedance.png differ
diff --git a/share/platforms/bytedance/res/drawable/umeng_socialize_bytedance_friends.png b/share/platforms/bytedance/res/drawable/umeng_socialize_bytedance_friends.png
new file mode 100644
index 0000000..80918b8
Binary files /dev/null and b/share/platforms/bytedance/res/drawable/umeng_socialize_bytedance_friends.png differ
diff --git a/share/platforms/bytedance/res/drawable/umeng_socialize_bytedance_publish.png b/share/platforms/bytedance/res/drawable/umeng_socialize_bytedance_publish.png
new file mode 100644
index 0000000..80918b8
Binary files /dev/null and b/share/platforms/bytedance/res/drawable/umeng_socialize_bytedance_publish.png differ
diff --git a/share/platforms/bytedance/src/douyinapi/DouYinEntryActivity.java b/share/platforms/bytedance/src/douyinapi/DouYinEntryActivity.java
new file mode 100644
index 0000000..c6e7950
--- /dev/null
+++ b/share/platforms/bytedance/src/douyinapi/DouYinEntryActivity.java
@@ -0,0 +1,6 @@
+package com.umeng.soexample.douyinapi;
+
+import com.umeng.socialize.douyin.DYCallbackActivity;
+
+public class DouYinEntryActivity extends DYCallbackActivity {
+}
\ No newline at end of file
diff --git a/share/platforms/dingding/libs/umeng-share-Ding-7.3.7.jar b/share/platforms/dingding/libs/umeng-share-Ding-7.3.7.jar
new file mode 100644
index 0000000..bba4b11
Binary files /dev/null and b/share/platforms/dingding/libs/umeng-share-Ding-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_ding.png b/share/platforms/dingding/res/drawable/umeng_socialize_ding.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_ding.png
rename to share/platforms/dingding/res/drawable/umeng_socialize_ding.png
diff --git a/share/platforms/dingding/src/ddshare/DDShareActivity.java b/share/platforms/dingding/src/ddshare/DDShareActivity.java
new file mode 100644
index 0000000..b02c950
--- /dev/null
+++ b/share/platforms/dingding/src/ddshare/DDShareActivity.java
@@ -0,0 +1,6 @@
+package com.umeng.soexample.ddshare;
+
+import com.umeng.socialize.media.DingCallBack;
+
+public class DDShareActivity extends DingCallBack {
+}
\ No newline at end of file
diff --git a/share/platforms/douban/libs/umeng-share-douban-7.3.7.jar b/share/platforms/douban/libs/umeng-share-douban-7.3.7.jar
new file mode 100644
index 0000000..2c36ea1
Binary files /dev/null and b/share/platforms/douban/libs/umeng-share-douban-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_douban.png b/share/platforms/douban/res/drawable/umeng_socialize_douban.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_douban.png
rename to share/platforms/douban/res/drawable/umeng_socialize_douban.png
diff --git a/UMLibrary/libs/json_simple-1.1.jar b/share/platforms/dropbox/libs/json_simple-1.1.jar
similarity index 100%
rename from UMLibrary/libs/json_simple-1.1.jar
rename to share/platforms/dropbox/libs/json_simple-1.1.jar
diff --git a/share/platforms/dropbox/libs/umeng-share-dropbox-7.3.7.jar b/share/platforms/dropbox/libs/umeng-share-dropbox-7.3.7.jar
new file mode 100644
index 0000000..8aaacab
Binary files /dev/null and b/share/platforms/dropbox/libs/umeng-share-dropbox-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_dropbox.png b/share/platforms/dropbox/res/drawable/umeng_socialize_dropbox.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_dropbox.png
rename to share/platforms/dropbox/res/drawable/umeng_socialize_dropbox.png
diff --git a/share/platforms/email/libs/umeng-share-email-7.3.7.jar b/share/platforms/email/libs/umeng-share-email-7.3.7.jar
new file mode 100644
index 0000000..a490fa4
Binary files /dev/null and b/share/platforms/email/libs/umeng-share-email-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_gmail.png b/share/platforms/email/res/drawable/umeng_socialize_gmail.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_gmail.png
rename to share/platforms/email/res/drawable/umeng_socialize_gmail.png
diff --git a/share/platforms/evernote/libs/umeng-share-evernote-7.3.7.jar b/share/platforms/evernote/libs/umeng-share-evernote-7.3.7.jar
new file mode 100644
index 0000000..02bb414
Binary files /dev/null and b/share/platforms/evernote/libs/umeng-share-evernote-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_evernote.png b/share/platforms/evernote/res/drawable/umeng_socialize_evernote.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_evernote.png
rename to share/platforms/evernote/res/drawable/umeng_socialize_evernote.png
diff --git a/share/platforms/facebook/libs/umeng-share-facebook-7.3.7.jar b/share/platforms/facebook/libs/umeng-share-facebook-7.3.7.jar
new file mode 100644
index 0000000..e4dc83c
Binary files /dev/null and b/share/platforms/facebook/libs/umeng-share-facebook-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/com_facebook_close.png b/share/platforms/facebook/res/drawable/com_facebook_close.png
old mode 100644
new mode 100755
similarity index 100%
rename from UMLibrary/res/drawable/com_facebook_close.png
rename to share/platforms/facebook/res/drawable/com_facebook_close.png
diff --git a/UMLibrary/res/drawable/umeng_socialize_facebook.png b/share/platforms/facebook/res/drawable/umeng_socialize_facebook.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_facebook.png
rename to share/platforms/facebook/res/drawable/umeng_socialize_facebook.png
diff --git a/UMLibrary/res/drawable/umeng_socialize_fbmessage.png b/share/platforms/facebook/res/drawable/umeng_socialize_fbmessage.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_fbmessage.png
rename to share/platforms/facebook/res/drawable/umeng_socialize_fbmessage.png
diff --git a/UMLibrary/res/layout/com_facebook_activity_layout.xml b/share/platforms/facebook/res/layout/com_facebook_activity_layout.xml
similarity index 100%
rename from UMLibrary/res/layout/com_facebook_activity_layout.xml
rename to share/platforms/facebook/res/layout/com_facebook_activity_layout.xml
diff --git a/UMLibrary/res/layout/com_facebook_login_fragment.xml b/share/platforms/facebook/res/layout/com_facebook_login_fragment.xml
similarity index 100%
rename from UMLibrary/res/layout/com_facebook_login_fragment.xml
rename to share/platforms/facebook/res/layout/com_facebook_login_fragment.xml
diff --git a/UMLibrary/res/values/facebook_strings.xml b/share/platforms/facebook/res/values/facebook_strings.xml
similarity index 100%
rename from UMLibrary/res/values/facebook_strings.xml
rename to share/platforms/facebook/res/values/facebook_strings.xml
diff --git a/UMLibrary/res/values/messenger_button_strings.xml b/share/platforms/facebook/res/values/messenger_button_strings.xml
similarity index 100%
rename from UMLibrary/res/values/messenger_button_strings.xml
rename to share/platforms/facebook/res/values/messenger_button_strings.xml
diff --git a/UMLibrary/res/values/umeng_socialize_facebook_strings.xml b/share/platforms/facebook/res/values/umeng_socialize_facebook_strings.xml
similarity index 100%
rename from UMLibrary/res/values/umeng_socialize_facebook_strings.xml
rename to share/platforms/facebook/res/values/umeng_socialize_facebook_strings.xml
diff --git a/share/platforms/flickr/libs/umeng-share-flickr-7.3.7.jar b/share/platforms/flickr/libs/umeng-share-flickr-7.3.7.jar
new file mode 100644
index 0000000..9d1c734
Binary files /dev/null and b/share/platforms/flickr/libs/umeng-share-flickr-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_flickr.png b/share/platforms/flickr/res/drawable/umeng_socialize_flickr.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_flickr.png
rename to share/platforms/flickr/res/drawable/umeng_socialize_flickr.png
diff --git a/share/platforms/foursquare/libs/umeng-share-foursquare-7.3.7.jar b/share/platforms/foursquare/libs/umeng-share-foursquare-7.3.7.jar
new file mode 100644
index 0000000..bdea13b
Binary files /dev/null and b/share/platforms/foursquare/libs/umeng-share-foursquare-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_foursquare.png b/share/platforms/foursquare/res/drawable/umeng_socialize_foursquare.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_foursquare.png
rename to share/platforms/foursquare/res/drawable/umeng_socialize_foursquare.png
diff --git a/UMLibrary/res/values/umeng_socialize_foursquare_strings.xml b/share/platforms/foursquare/res/values/umeng_socialize_foursquare_strings.xml
similarity index 100%
rename from UMLibrary/res/values/umeng_socialize_foursquare_strings.xml
rename to share/platforms/foursquare/res/values/umeng_socialize_foursquare_strings.xml
diff --git a/share/platforms/honor/libs/Honor-openSDK-6.0.3.004.aar b/share/platforms/honor/libs/Honor-openSDK-6.0.3.004.aar
new file mode 100644
index 0000000..8f86d27
Binary files /dev/null and b/share/platforms/honor/libs/Honor-openSDK-6.0.3.004.aar differ
diff --git a/share/platforms/honor/libs/umeng-share-honor-7.3.7.jar b/share/platforms/honor/libs/umeng-share-honor-7.3.7.jar
new file mode 100644
index 0000000..7482bb7
Binary files /dev/null and b/share/platforms/honor/libs/umeng-share-honor-7.3.7.jar differ
diff --git a/share/platforms/honor/res/drawable/umeng_socialize_honor.png b/share/platforms/honor/res/drawable/umeng_socialize_honor.png
new file mode 100644
index 0000000..238fdcb
Binary files /dev/null and b/share/platforms/honor/res/drawable/umeng_socialize_honor.png differ
diff --git a/share/platforms/instagram/libs/umeng-share-instagram-7.3.7.jar b/share/platforms/instagram/libs/umeng-share-instagram-7.3.7.jar
new file mode 100644
index 0000000..6f4f104
Binary files /dev/null and b/share/platforms/instagram/libs/umeng-share-instagram-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_instagram.png b/share/platforms/instagram/res/drawable/umeng_socialize_instagram.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_instagram.png
rename to share/platforms/instagram/res/drawable/umeng_socialize_instagram.png
diff --git a/share/platforms/kakao/libs/umeng-share-kakao-7.3.7.jar b/share/platforms/kakao/libs/umeng-share-kakao-7.3.7.jar
new file mode 100644
index 0000000..bc9c1f0
Binary files /dev/null and b/share/platforms/kakao/libs/umeng-share-kakao-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_kakao.png b/share/platforms/kakao/res/drawable/umeng_socialize_kakao.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_kakao.png
rename to share/platforms/kakao/res/drawable/umeng_socialize_kakao.png
diff --git a/UMLibrary/res/layout/umeng_socialize_activity_kakao_webview.xml b/share/platforms/kakao/res/layout/umeng_socialize_activity_kakao_webview.xml
similarity index 100%
rename from UMLibrary/res/layout/umeng_socialize_activity_kakao_webview.xml
rename to share/platforms/kakao/res/layout/umeng_socialize_activity_kakao_webview.xml
diff --git a/UMLibrary/res/values/umeng_socialize_kakao_strings.xml b/share/platforms/kakao/res/values/umeng_socialize_kakao_strings.xml
similarity index 100%
rename from UMLibrary/res/values/umeng_socialize_kakao_strings.xml
rename to share/platforms/kakao/res/values/umeng_socialize_kakao_strings.xml
diff --git a/share/platforms/line/libs/umeng-share-line-7.3.7.jar b/share/platforms/line/libs/umeng-share-line-7.3.7.jar
new file mode 100644
index 0000000..094531a
Binary files /dev/null and b/share/platforms/line/libs/umeng-share-line-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_line.png b/share/platforms/line/res/drawable/umeng_socialize_line.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_line.png
rename to share/platforms/line/res/drawable/umeng_socialize_line.png
diff --git a/share/platforms/linkedin/libs/umeng-share-linkedin-7.3.7.jar b/share/platforms/linkedin/libs/umeng-share-linkedin-7.3.7.jar
new file mode 100644
index 0000000..d977706
Binary files /dev/null and b/share/platforms/linkedin/libs/umeng-share-linkedin-7.3.7.jar differ
diff --git a/UMLibrary/libs/volley.jar b/share/platforms/linkedin/libs/volley.jar
similarity index 100%
rename from UMLibrary/libs/volley.jar
rename to share/platforms/linkedin/libs/volley.jar
diff --git a/UMLibrary/res/drawable/umeng_socialize_linkedin.png b/share/platforms/linkedin/res/drawable/umeng_socialize_linkedin.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_linkedin.png
rename to share/platforms/linkedin/res/drawable/umeng_socialize_linkedin.png
diff --git a/share/platforms/pinterest/libs/umeng-share-pinterest-7.3.7.jar b/share/platforms/pinterest/libs/umeng-share-pinterest-7.3.7.jar
new file mode 100644
index 0000000..e14d06b
Binary files /dev/null and b/share/platforms/pinterest/libs/umeng-share-pinterest-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_pinterest.png b/share/platforms/pinterest/res/drawable/umeng_socialize_pinterest.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_pinterest.png
rename to share/platforms/pinterest/res/drawable/umeng_socialize_pinterest.png
diff --git a/share/platforms/pocket/libs/umeng-share-pocket-7.3.7.jar b/share/platforms/pocket/libs/umeng-share-pocket-7.3.7.jar
new file mode 100644
index 0000000..8e99079
Binary files /dev/null and b/share/platforms/pocket/libs/umeng-share-pocket-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_pocket.png b/share/platforms/pocket/res/drawable/umeng_socialize_pocket.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_pocket.png
rename to share/platforms/pocket/res/drawable/umeng_socialize_pocket.png
diff --git a/share/platforms/sms/libs/umeng-share-sms-7.3.7.jar b/share/platforms/sms/libs/umeng-share-sms-7.3.7.jar
new file mode 100644
index 0000000..cd1db13
Binary files /dev/null and b/share/platforms/sms/libs/umeng-share-sms-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_sms.png b/share/platforms/sms/res/drawable/umeng_socialize_sms.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_sms.png
rename to share/platforms/sms/res/drawable/umeng_socialize_sms.png
diff --git a/share/platforms/tumblr/libs/umeng-share-tumblr-7.3.7.jar b/share/platforms/tumblr/libs/umeng-share-tumblr-7.3.7.jar
new file mode 100644
index 0000000..8cd0262
Binary files /dev/null and b/share/platforms/tumblr/libs/umeng-share-tumblr-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_tumblr.png b/share/platforms/tumblr/res/drawable/umeng_socialize_tumblr.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_tumblr.png
rename to share/platforms/tumblr/res/drawable/umeng_socialize_tumblr.png
diff --git a/share/platforms/twitter/libs/umeng-share-twitter-7.3.7.jar b/share/platforms/twitter/libs/umeng-share-twitter-7.3.7.jar
new file mode 100644
index 0000000..ecc8023
Binary files /dev/null and b/share/platforms/twitter/libs/umeng-share-twitter-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_twitter.png b/share/platforms/twitter/res/drawable/umeng_socialize_twitter.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_twitter.png
rename to share/platforms/twitter/res/drawable/umeng_socialize_twitter.png
diff --git a/share/platforms/twitter/src/twitterapi/TwitterShareReceiver.java b/share/platforms/twitter/src/twitterapi/TwitterShareReceiver.java
new file mode 100644
index 0000000..8c1681a
--- /dev/null
+++ b/share/platforms/twitter/src/twitterapi/TwitterShareReceiver.java
@@ -0,0 +1,6 @@
+package com.umeng.soexample.twitterapi;
+
+import com.umeng.socialize.handler.UMTwitterReceiver;
+
+public class TwitterShareReceiver extends UMTwitterReceiver {
+}
\ No newline at end of file
diff --git a/share/platforms/vkontakte/libs/umeng-share-vkontakte-7.3.7.jar b/share/platforms/vkontakte/libs/umeng-share-vkontakte-7.3.7.jar
new file mode 100644
index 0000000..11e8bef
Binary files /dev/null and b/share/platforms/vkontakte/libs/umeng-share-vkontakte-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/ic_ab_app.png b/share/platforms/vkontakte/res/drawable/ic_ab_app.png
similarity index 100%
rename from UMLibrary/res/drawable/ic_ab_app.png
rename to share/platforms/vkontakte/res/drawable/ic_ab_app.png
diff --git a/UMLibrary/res/drawable/ic_ab_done.png b/share/platforms/vkontakte/res/drawable/ic_ab_done.png
similarity index 100%
rename from UMLibrary/res/drawable/ic_ab_done.png
rename to share/platforms/vkontakte/res/drawable/ic_ab_done.png
diff --git a/UMLibrary/res/drawable/vk_clear_shape.xml b/share/platforms/vkontakte/res/drawable/vk_clear_shape.xml
similarity index 100%
rename from UMLibrary/res/drawable/vk_clear_shape.xml
rename to share/platforms/vkontakte/res/drawable/vk_clear_shape.xml
diff --git a/UMLibrary/res/drawable/vk_gray_transparent_shape.xml b/share/platforms/vkontakte/res/drawable/vk_gray_transparent_shape.xml
similarity index 100%
rename from UMLibrary/res/drawable/vk_gray_transparent_shape.xml
rename to share/platforms/vkontakte/res/drawable/vk_gray_transparent_shape.xml
diff --git a/UMLibrary/res/drawable/vk_icon.png b/share/platforms/vkontakte/res/drawable/vk_icon.png
similarity index 100%
rename from UMLibrary/res/drawable/vk_icon.png
rename to share/platforms/vkontakte/res/drawable/vk_icon.png
diff --git a/UMLibrary/res/drawable/vk_share_send_button_background.xml b/share/platforms/vkontakte/res/drawable/vk_share_send_button_background.xml
similarity index 100%
rename from UMLibrary/res/drawable/vk_share_send_button_background.xml
rename to share/platforms/vkontakte/res/drawable/vk_share_send_button_background.xml
diff --git a/UMLibrary/res/layout/vk_captcha_dialog.xml b/share/platforms/vkontakte/res/layout/vk_captcha_dialog.xml
similarity index 100%
rename from UMLibrary/res/layout/vk_captcha_dialog.xml
rename to share/platforms/vkontakte/res/layout/vk_captcha_dialog.xml
diff --git a/UMLibrary/res/layout/vk_open_auth_dialog.xml b/share/platforms/vkontakte/res/layout/vk_open_auth_dialog.xml
similarity index 100%
rename from UMLibrary/res/layout/vk_open_auth_dialog.xml
rename to share/platforms/vkontakte/res/layout/vk_open_auth_dialog.xml
diff --git a/UMLibrary/res/layout/vk_share_dialog.xml b/share/platforms/vkontakte/res/layout/vk_share_dialog.xml
similarity index 100%
rename from UMLibrary/res/layout/vk_share_dialog.xml
rename to share/platforms/vkontakte/res/layout/vk_share_dialog.xml
diff --git a/UMLibrary/res/values/vk_color.xml b/share/platforms/vkontakte/res/values/vk_color.xml
similarity index 100%
rename from UMLibrary/res/values/vk_color.xml
rename to share/platforms/vkontakte/res/values/vk_color.xml
diff --git a/UMLibrary/res/values/vk_dimen.xml b/share/platforms/vkontakte/res/values/vk_dimen.xml
similarity index 100%
rename from UMLibrary/res/values/vk_dimen.xml
rename to share/platforms/vkontakte/res/values/vk_dimen.xml
diff --git a/UMLibrary/res/values/vk_strings.xml b/share/platforms/vkontakte/res/values/vk_strings.xml
similarity index 100%
rename from UMLibrary/res/values/vk_strings.xml
rename to share/platforms/vkontakte/res/values/vk_strings.xml
diff --git a/UMLibrary/res/values/vk_styles.xml b/share/platforms/vkontakte/res/values/vk_styles.xml
similarity index 99%
rename from UMLibrary/res/values/vk_styles.xml
rename to share/platforms/vkontakte/res/values/vk_styles.xml
index 70af7c0..c905bbf 100644
--- a/UMLibrary/res/values/vk_styles.xml
+++ b/share/platforms/vkontakte/res/values/vk_styles.xml
@@ -13,4 +13,7 @@
- @android:color/transparent
- @null
+
+
+
\ No newline at end of file
diff --git a/share/platforms/whatsapp/libs/umeng-share-whatsapp-7.3.7.jar b/share/platforms/whatsapp/libs/umeng-share-whatsapp-7.3.7.jar
new file mode 100644
index 0000000..98565e9
Binary files /dev/null and b/share/platforms/whatsapp/libs/umeng-share-whatsapp-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_whatsapp.png b/share/platforms/whatsapp/res/drawable/umeng_socialize_whatsapp.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_whatsapp.png
rename to share/platforms/whatsapp/res/drawable/umeng_socialize_whatsapp.png
diff --git a/UMLibrary/libs/SocialSDK_yixin_1.jar b/share/platforms/yixin/libs/SocialSDK_yixin_1.jar
similarity index 100%
rename from UMLibrary/libs/SocialSDK_yixin_1.jar
rename to share/platforms/yixin/libs/SocialSDK_yixin_1.jar
diff --git a/share/platforms/yixin/libs/umeng-share-yixin-7.3.7.jar b/share/platforms/yixin/libs/umeng-share-yixin-7.3.7.jar
new file mode 100644
index 0000000..8751679
Binary files /dev/null and b/share/platforms/yixin/libs/umeng-share-yixin-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_yixin.png b/share/platforms/yixin/res/drawable/umeng_socialize_yixin.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_yixin.png
rename to share/platforms/yixin/res/drawable/umeng_socialize_yixin.png
diff --git a/UMLibrary/res/drawable/umeng_socialize_yixin_circle.png b/share/platforms/yixin/res/drawable/umeng_socialize_yixin_circle.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_yixin_circle.png
rename to share/platforms/yixin/res/drawable/umeng_socialize_yixin_circle.png
diff --git a/share/platforms/yixin/src/yxapi/YXEntryActivity.java b/share/platforms/yixin/src/yxapi/YXEntryActivity.java
new file mode 100644
index 0000000..51caabd
--- /dev/null
+++ b/share/platforms/yixin/src/yxapi/YXEntryActivity.java
@@ -0,0 +1,6 @@
+package com.umeng.soexample.yxapi;
+
+import com.umeng.socialize.activity.YXCallbackActivity;
+
+public class YXEntryActivity extends YXCallbackActivity {
+}
\ No newline at end of file
diff --git a/share/platforms/ynote/libs/umeng-share-ynote-7.3.7.jar b/share/platforms/ynote/libs/umeng-share-ynote-7.3.7.jar
new file mode 100644
index 0000000..a8cdc2c
Binary files /dev/null and b/share/platforms/ynote/libs/umeng-share-ynote-7.3.7.jar differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_ynote.png b/share/platforms/ynote/res/drawable/umeng_socialize_ynote.png
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_ynote.png
rename to share/platforms/ynote/res/drawable/umeng_socialize_ynote.png
diff --git "a/share/platforms/\344\274\201\344\270\232\345\276\256\344\277\241/libs/lib_wwapi-2.0.12.11.aar" "b/share/platforms/\344\274\201\344\270\232\345\276\256\344\277\241/libs/lib_wwapi-2.0.12.11.aar"
new file mode 100644
index 0000000..5f9a9cc
Binary files /dev/null and "b/share/platforms/\344\274\201\344\270\232\345\276\256\344\277\241/libs/lib_wwapi-2.0.12.11.aar" differ
diff --git "a/share/platforms/\344\274\201\344\270\232\345\276\256\344\277\241/libs/umeng-share-wxwork-7.3.7.jar" "b/share/platforms/\344\274\201\344\270\232\345\276\256\344\277\241/libs/umeng-share-wxwork-7.3.7.jar"
new file mode 100644
index 0000000..9f8fbac
Binary files /dev/null and "b/share/platforms/\344\274\201\344\270\232\345\276\256\344\277\241/libs/umeng-share-wxwork-7.3.7.jar" differ
diff --git "a/share/platforms/\344\274\201\344\270\232\345\276\256\344\277\241/res/drawable/umeng_socialize_wxwork.png" "b/share/platforms/\344\274\201\344\270\232\345\276\256\344\277\241/res/drawable/umeng_socialize_wxwork.png"
new file mode 100644
index 0000000..5485775
Binary files /dev/null and "b/share/platforms/\344\274\201\344\270\232\345\276\256\344\277\241/res/drawable/umeng_socialize_wxwork.png" differ
diff --git "a/share/platforms/\345\276\256\344\277\241\345\256\214\346\225\264\347\211\210/libs/umeng-share-wechat-full-7.3.7.jar" "b/share/platforms/\345\276\256\344\277\241\345\256\214\346\225\264\347\211\210/libs/umeng-share-wechat-full-7.3.7.jar"
new file mode 100644
index 0000000..7df15e0
Binary files /dev/null and "b/share/platforms/\345\276\256\344\277\241\345\256\214\346\225\264\347\211\210/libs/umeng-share-wechat-full-7.3.7.jar" differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_fav.png "b/share/platforms/\345\276\256\344\277\241\345\256\214\346\225\264\347\211\210/res/drawable/umeng_socialize_fav.png"
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_fav.png
rename to "share/platforms/\345\276\256\344\277\241\345\256\214\346\225\264\347\211\210/res/drawable/umeng_socialize_fav.png"
diff --git a/UMLibrary/res/drawable/umeng_socialize_wechat.png "b/share/platforms/\345\276\256\344\277\241\345\256\214\346\225\264\347\211\210/res/drawable/umeng_socialize_wechat.png"
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_wechat.png
rename to "share/platforms/\345\276\256\344\277\241\345\256\214\346\225\264\347\211\210/res/drawable/umeng_socialize_wechat.png"
diff --git a/UMLibrary/res/drawable/umeng_socialize_wxcircle.png "b/share/platforms/\345\276\256\344\277\241\345\256\214\346\225\264\347\211\210/res/drawable/umeng_socialize_wxcircle.png"
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_wxcircle.png
rename to "share/platforms/\345\276\256\344\277\241\345\256\214\346\225\264\347\211\210/res/drawable/umeng_socialize_wxcircle.png"
diff --git "a/share/platforms/\345\276\256\344\277\241\345\256\214\346\225\264\347\211\210/src/wxapi/WXEntryActivity.java" "b/share/platforms/\345\276\256\344\277\241\345\256\214\346\225\264\347\211\210/src/wxapi/WXEntryActivity.java"
new file mode 100644
index 0000000..95ac946
--- /dev/null
+++ "b/share/platforms/\345\276\256\344\277\241\345\256\214\346\225\264\347\211\210/src/wxapi/WXEntryActivity.java"
@@ -0,0 +1,6 @@
+package com.umeng.soexample.wxapi;
+
+import com.umeng.socialize.weixin.view.WXCallbackActivity;
+
+public class WXEntryActivity extends WXCallbackActivity {
+}
\ No newline at end of file
diff --git "a/share/platforms/\346\226\260\346\265\252\345\256\214\346\225\264\347\211\210/libs/umeng-share-sina-full-7.3.7.jar" "b/share/platforms/\346\226\260\346\265\252\345\256\214\346\225\264\347\211\210/libs/umeng-share-sina-full-7.3.7.jar"
new file mode 100644
index 0000000..a18190b
Binary files /dev/null and "b/share/platforms/\346\226\260\346\265\252\345\256\214\346\225\264\347\211\210/libs/umeng-share-sina-full-7.3.7.jar" differ
diff --git a/UMLibrary/res/drawable/umeng_socialize_sina.png "b/share/platforms/\346\226\260\346\265\252\345\256\214\346\225\264\347\211\210/res/drawable/umeng_socialize_sina.png"
similarity index 100%
rename from UMLibrary/res/drawable/umeng_socialize_sina.png
rename to "share/platforms/\346\226\260\346\265\252\345\256\214\346\225\264\347\211\210/res/drawable/umeng_socialize_sina.png"
diff --git a/share/shareback/libs/umeng-link-2.0.0.aar b/share/shareback/libs/umeng-link-2.0.0.aar
new file mode 100644
index 0000000..2c58d8f
Binary files /dev/null and b/share/shareback/libs/umeng-link-2.0.0.aar differ