该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
大家可以直接拿去用,稍微改改就能用哦!注意,仅实现通知栏显示功能,不提供下载进度条监听的代码
/**
* Created by xlzhen on 11/11 0011.
* 在通知栏显示消息 下载
*/
public class NotificationDownloadUtils {
public static NotificationManager mNotificationManager;
public static NotificationCompat.Builder mBuilder;
public static String contentTitle;
private static String TAG=NotificationDownloadUtils.class.getName();
public static void show(Context context,int icon, String contentTitle, CharSequence contentText) {
NotificationDownloadUtils.contentTitle = contentTitle;
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(),
icon);
mBuilder = new NotificationCompat.Builder(
context).setLargeIcon(bitmap)
.setSmallIcon(icon)
.setContentTitle(contentTitle).setContentText("正在下载"+contentText+",请稍候")
.setContentInfo("12").setWhen(System.currentTimeMillis())
.setAutoCancel(false);
Intent resultIntent = new Intent();
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,
PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1, mBuilder.build());
}
public static void update(Context context,CharSequence contentText) {
if (mBuilder != null && contentTitle != null) {
if (!"100".equals(contentText.toString())) {
Log.v(TAG,"正在下载更新包:" + contentText.toString() + "%");
mBuilder.setContentText("已下载" + contentText + "%");
mNotificationManager.notify(1, mBuilder.build());
} else {
Log.v(TAG, "更新包下载完毕:" + contentText.toString() + "%");
mNotificationManager.cancel(1);
// 新APK在存储卡上的位置
String fileName = Environment.getExternalStorageDirectory() + "/你的内存卡存储目录/"+contentTitle+".apk";
// 通过启动一个Intent让系统来帮你安装新的APK
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
context.startActivity(intent);
android.os.Process.killProcess(android.os.Process.myPid());
}
}
}
public static void error(){
if (mBuilder != null && contentTitle != null) {
Log.v(TAG, "下载失败");
mBuilder.setContentText("网络故障,下载失败!请检查您的网络链接");
mNotificationManager.notify(1, mBuilder.build());
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mNotificationManager.cancel(1);
}
},1000);
}
}