From dcd22aaf332c17685cf2c4a6a3c81cd06fa48b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=96=84=E6=98=8E?= Date: Wed, 7 Mar 2018 16:22:09 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A08.0=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README-zh.md | 5 +++++ library/build.gradle | 4 ++-- .../java/me/shenfan/updateapp/UpdateService.java | 16 ++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/README-zh.md b/README-zh.md index 8222c75..734b2e7 100644 --- a/README-zh.md +++ b/README-zh.md @@ -56,6 +56,11 @@ allprojects { } } +`SNAPSHOT` +dependencies { + compile 'com.github.yaming116:UpdateApp:1.0.4-SNAPSHOT' +} + dependencies { compile 'com.github.yaming116:UpdateApp:1.0.2' } diff --git a/library/build.gradle b/library/build.gradle index 922fb66..b0d2652 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 25 + compileSdkVersion 27 buildToolsVersion "25.0.3" defaultConfig { minSdkVersion 14 - targetSdkVersion 25 + targetSdkVersion 27 versionCode 3 versionName "1.0.3" } diff --git a/library/src/main/java/me/shenfan/updateapp/UpdateService.java b/library/src/main/java/me/shenfan/updateapp/UpdateService.java index 65371b4..f114bef 100644 --- a/library/src/main/java/me/shenfan/updateapp/UpdateService.java +++ b/library/src/main/java/me/shenfan/updateapp/UpdateService.java @@ -1,6 +1,8 @@ package me.shenfan.updateapp; +import android.annotation.TargetApi; import android.app.Notification; +import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; @@ -10,6 +12,7 @@ import android.content.pm.PackageManager; import android.content.pm.ProviderInfo; import android.graphics.BitmapFactory; +import android.graphics.Color; import android.net.Uri; import android.os.AsyncTask; import android.os.Binder; @@ -271,8 +274,21 @@ private void sendLocalBroadcast(int status, int progress) { localBroadcastManager.sendBroadcast(localIntent); } + @TargetApi(26) private void buildNotification() { manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { + CharSequence name = "update_channel"; + String Description = "zhuojian update channel"; + int importance = NotificationManager.IMPORTANCE_HIGH; + NotificationChannel mChannel = new NotificationChannel(String.valueOf(notifyId), name, importance); + mChannel.setDescription(Description); + mChannel.enableLights(true); + mChannel.setLightColor(Color.BLUE); + mChannel.enableVibration(true); + mChannel.setShowBadge(false); + manager.createNotificationChannel(mChannel); + } builder = new NotificationCompat.Builder(this); builder.setContentTitle(getString(R.string.update_app_model_prepare, appName)) .setWhen(System.currentTimeMillis()) From e4df7d7410f69e3cd85578080370a95d3cb15cea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=96=84=E6=98=8E?= Date: Thu, 8 Mar 2018 09:08:53 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=8D=87=E7=BA=A7sdk=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 6 +++--- build.gradle | 1 + library/build.gradle | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index adf7b25..34a5064 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,13 +1,13 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 25 - buildToolsVersion "25.0.3" + compileSdkVersion 27 + buildToolsVersion "27.0.1" defaultConfig { applicationId "me.shenfan.updateapp.sample" minSdkVersion 14 - targetSdkVersion 25 + targetSdkVersion 27 versionCode 1 versionName "1.0" } diff --git a/build.gradle b/build.gradle index 37abb1e..44e1d9a 100644 --- a/build.gradle +++ b/build.gradle @@ -15,6 +15,7 @@ buildscript { allprojects { repositories { maven { url "https://www.jitpack.io" } + maven {url "https://dl.google.com/dl/android/maven2/"} jcenter() } } diff --git a/library/build.gradle b/library/build.gradle index b0d2652..8d910f3 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 27 - buildToolsVersion "25.0.3" + buildToolsVersion "27.0.1" defaultConfig { minSdkVersion 14 @@ -25,5 +25,5 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' - compile 'com.android.support:support-core-utils:25.3.1' + compile 'com.android.support:support-core-utils:27.0.1' } From f23dcd6e658af0ceaa8e13f2060c9080a202d272 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=96=84=E6=98=8E?= Date: Thu, 8 Mar 2018 09:09:10 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A08.0=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/src/main/java/me/shenfan/updateapp/UpdateService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/me/shenfan/updateapp/UpdateService.java b/library/src/main/java/me/shenfan/updateapp/UpdateService.java index f114bef..c1ee04b 100644 --- a/library/src/main/java/me/shenfan/updateapp/UpdateService.java +++ b/library/src/main/java/me/shenfan/updateapp/UpdateService.java @@ -277,6 +277,7 @@ private void sendLocalBroadcast(int status, int progress) { @TargetApi(26) private void buildNotification() { manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); + builder = new NotificationCompat.Builder(this); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { CharSequence name = "update_channel"; String Description = "zhuojian update channel"; @@ -288,8 +289,8 @@ private void buildNotification() { mChannel.enableVibration(true); mChannel.setShowBadge(false); manager.createNotificationChannel(mChannel); + builder.setChannelId(String.valueOf(notifyId)); } - builder = new NotificationCompat.Builder(this); builder.setContentTitle(getString(R.string.update_app_model_prepare, appName)) .setWhen(System.currentTimeMillis()) .setProgress(100, 1, false) From dc3412b224b5d26c10115194579ed0764b710b9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=96=84=E6=98=8E?= Date: Thu, 8 Mar 2018 12:53:39 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E9=99=8D=E7=BA=A7=E4=BE=9D=E8=B5=96v4?= =?UTF-8?q?=EF=BC=8C=E5=8E=BB=E9=99=A4=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/build.gradle | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/build.gradle b/library/build.gradle index 8d910f3..f1d0008 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 27 - buildToolsVersion "27.0.1" + compileSdkVersion 26 + buildToolsVersion "25.0.1" defaultConfig { minSdkVersion 14 - targetSdkVersion 27 + targetSdkVersion 26 versionCode 3 versionName "1.0.3" } @@ -25,5 +25,5 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' - compile 'com.android.support:support-core-utils:27.0.1' + provided 'com.android.support:support-core-utils:25.3.1' } From 7d3d60795a388bdf6fc0217a185f538e0be06bbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=96=84=E6=98=8E?= Date: Thu, 8 Mar 2018 12:54:44 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0localNotificationCompat?= =?UTF-8?q?=E4=BE=9D=E8=B5=96v4=2025=E7=89=88=E6=9C=AC=EF=BC=8C=E5=85=BC?= =?UTF-8?q?=E5=AE=B98.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v4/app/LocalNotificationCompat.java | 62 +++++++++++++++++++ .../me/shenfan/updateapp/UpdateService.java | 7 ++- 2 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 library/src/main/java/android/support/v4/app/LocalNotificationCompat.java diff --git a/library/src/main/java/android/support/v4/app/LocalNotificationCompat.java b/library/src/main/java/android/support/v4/app/LocalNotificationCompat.java new file mode 100644 index 0000000..638f995 --- /dev/null +++ b/library/src/main/java/android/support/v4/app/LocalNotificationCompat.java @@ -0,0 +1,62 @@ +package android.support.v4.app; + +import android.app.Notification; +import android.content.Context; +import android.support.annotation.NonNull; + +import java.util.ArrayList; + +/** + * Created by ucmed on 2018/3/8. + */ +public class LocalNotificationCompat extends NotificationCompat { + public static class Builder extends NotificationCompat.Builder{ + String mChannelId; + /** + * Constructor. + * + * Automatically sets the when field to {@link System#currentTimeMillis() + * System.currentTimeMillis()} and the audio stream to the + * {@link Notification#STREAM_DEFAULT}. + * + * @param context A {@link Context} that will be used to construct the + * RemoteViews. The Context will not be held past the lifetime of this + * Builder object. + * @param channelId The constructed Notification will be posted on this + * NotificationChannel. + */ + public Builder(@NonNull Context context, @NonNull String channelId) { + super(context); + mContext = context; + mChannelId = channelId; + + // Set defaults to match the defaults of a Notification + mNotification.when = System.currentTimeMillis(); + mNotification.audioStreamType = Notification.STREAM_DEFAULT; + mPriority = PRIORITY_DEFAULT; + mPeople = new ArrayList(); + } + + /** + * @deprecated use {@link #LocalNotificationCompat.Builder(Context,String)} instead. + * All posted Notifications must specify a NotificationChannel Id. + */ + @Deprecated + public Builder(Context context) { + this(context, null); + } + + + /** + * Specifies the channel the notification should be delivered on. + * + * No-op on versions prior to {@link android.os.Build.VERSION_CODES#O} . + */ + public Builder setChannelId(@NonNull String channelId) { + mChannelId = channelId; + return this; + } + } + + +} diff --git a/library/src/main/java/me/shenfan/updateapp/UpdateService.java b/library/src/main/java/me/shenfan/updateapp/UpdateService.java index c1ee04b..39e4b1c 100644 --- a/library/src/main/java/me/shenfan/updateapp/UpdateService.java +++ b/library/src/main/java/me/shenfan/updateapp/UpdateService.java @@ -20,7 +20,7 @@ import android.os.Environment; import android.os.IBinder; import android.support.annotation.Nullable; -import android.support.v4.app.NotificationCompat; +import android.support.v4.app.LocalNotificationCompat; import android.support.v4.content.FileProvider; import android.support.v4.content.LocalBroadcastManager; import android.text.TextUtils; @@ -94,7 +94,7 @@ public void setUpdateProgressListener(UpdateProgressListener listener) { private boolean startDownload;//开始下载 private int lastProgressNumber; - private NotificationCompat.Builder builder; + private LocalNotificationCompat.Builder builder; private NotificationManager manager; private int notifyId; private String appName; @@ -277,7 +277,7 @@ private void sendLocalBroadcast(int status, int progress) { @TargetApi(26) private void buildNotification() { manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); - builder = new NotificationCompat.Builder(this); + builder = new LocalNotificationCompat.Builder(this); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { CharSequence name = "update_channel"; String Description = "zhuojian update channel"; @@ -302,6 +302,7 @@ private void buildNotification() { manager.notify(notifyId, builder.build()); } + private void start() { builder.setContentTitle(appName); builder.setContentText(getString(R.string.update_app_model_progress, 1, "%"));