Commit 68111243 by 罗翻

测试小红点

parent 654304eb
......@@ -38,6 +38,10 @@
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!--华为小红点-->
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
<application
android:name=".MyApplication"
android:allowBackup="true"
......
......@@ -37,6 +37,7 @@ import com.dayu.provider.event.RefreshReceivingNum;
import com.dayu.provider.event.SwtichFragment;
import com.dayu.provider.router.RouterPath;
import com.dayu.usercenter.ui.fragment.HomePersonFragment;
import com.dayu.utils.badgeNumberManger.BadgeNumberManager;
import com.dayu.widgets.CustomDialog;
import com.dayu.widgets.listener.onDownloadListener;
import com.umeng.analytics.MobclickAgent;
......@@ -46,6 +47,8 @@ import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
/**
* Created by luofan
......@@ -230,14 +233,18 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
private void doAction(Intent intent) {
InformBean info = (InformBean) intent.getSerializableExtra(Constants.MESSAGE_INFO);
if (info != null) {
Map<String, String> map_ekv = new HashMap<>();
if (info.getCategory() == 1 && (info.getFunctionType() == 2)) {
dumpReceActivity();//待接单列表
map_ekv.put("type", mActivity.getString(com.dayu.order.R.string.receive_list));
} else {
int secondIndex = 0;
if (info.getCategory() == 1) {
secondIndex = 0; //系统通知
map_ekv.put("type", mActivity.getString(com.dayu.order.R.string.message_system));
} else if (info.getCategory() == 2) {
secondIndex = 1;//大鱼通知
map_ekv.put("type", mActivity.getString(com.dayu.order.R.string.message_dayu));
}
showHideFragment(2, mPosition);
mBind.ivMessage.setVisibility(View.GONE);
......@@ -246,6 +253,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
thirdFragment.swtichFragment(secondIndex);
}
}
MobclickAgent.onEvent(mActivity, "notificaition_click", map_ekv);
}
}
......@@ -273,6 +281,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
public void onPause() {
super.onPause();
MobclickAgent.onPause(this);
BadgeNumberManager.from(mActivity).setBadgeNumber(0);
}
@Override
......
......@@ -8,10 +8,10 @@ import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import com.dayu.common.Constants;
import com.dayu.bigfish.R;
import com.dayu.bigfish.api.protocol.InformBean;
import com.dayu.bigfish.ui.MainActivity;
import com.dayu.common.Constants;
import com.google.gson.Gson;
import com.hyphenate.EMMessageListener;
import com.hyphenate.chat.EMClient;
......@@ -88,7 +88,7 @@ public class HxManager {
NotificationManager notificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext);
// 设置打开通知,该通知取消
builder.setAutoCancel(true)
Notification notification = builder.setAutoCancel(true)
// 设置通知提示信息
.setTicker(info.getTitle())
// 设置通知的图标
......@@ -106,9 +106,12 @@ public class HxManager {
// 设置将要启动的活动
.setContentIntent(pi)
.build();
if (notificationManager!=null){
notificationManager.notify(0, builder.build());
}
// BadgeNumberManager.from(mContext).setBadgeNumber(messages.size());
// BadgeNumberUtils.setBadgeNumberXiaoMi(notification,messages.size());
}
}
@Override
......
......@@ -12,13 +12,13 @@ public class Constants {
/**
* 测试环境配置.
*/
// public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
// public static final String ENVIROMENT = "debug";
// public static final String BASE_URL = "http://47.94.101.239:3112";
// public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
// public final static String WEB_SOP = "http://47.94.101.239:9004/#/sop";
// public final static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail";
// public static final boolean IS_DEBUG = true;
public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
public static final String ENVIROMENT = "debug";
public static final String BASE_URL = "http://47.94.101.239:3112";
public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
public final static String WEB_SOP = "http://47.94.101.239:9004/#/sop";
public final static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail";
public static final boolean IS_DEBUG = true;
/**
* uat环境配置.
......@@ -34,13 +34,13 @@ public class Constants {
/**
* 正式环境.
*/
public static final String ENVIROMENT = "release";
public static final int LOG_LEVEL = LogUtils.LEVEL_OFF;
public static final String BASE_URL = "https://mobile.kf.ai";
public final static String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
public final static String WEB_SOP = "https://sop.kf.ai/#/sop";
public final static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
public static final boolean IS_DEBUG = false;
// public static final String ENVIROMENT = "release";
// public static final int LOG_LEVEL = LogUtils.LEVEL_OFF;
// public static final String BASE_URL = "https://mobile.kf.ai";
// public final static String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
// public final static String WEB_SOP = "https://sop.kf.ai/#/sop";
// public final static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
// public static final boolean IS_DEBUG = false;
/**
* 演示环境
......
package com.dayu.utils.badgeNumberManger;
import android.content.Context;
import android.os.Build;
/**
* 应用桌面角标设置的管理类
* Created by zlq on 2017 17/8/23 14:50.
*/
public class BadgeNumberManager {
private Context mContext;
private BadgeNumberManager(Context context) {
mContext = context;
}
public static BadgeNumberManager from(Context context) {
return new BadgeNumberManager(context);
}
private static final Impl IMPL;
/**
* 设置应用在桌面上显示的角标数字
*
* @param number 显示的数字
*/
public void setBadgeNumber(int number) {
IMPL.setBadgeNumber(mContext, number);
}
interface Impl {
void setBadgeNumber(Context context, int number);
}
static class IMplSamsung implements Impl {
@Override
public void setBadgeNumber(Context context, int number) {
BadgeNumberUtils.setBadgeNumberSamSung(context, number);
}
}
static class ImplHuaWei implements Impl {
@Override
public void setBadgeNumber(Context context, int number) {
BadgeNumberUtils.setBadgeNumberHuaWei(context, number);
}
}
static class ImplXiaoMi implements Impl {
@Override
public void setBadgeNumber(Context context, int number) {
//小米机型的桌面应用角标API跟通知绑定在一起了,所以单独做处理
// BadgeNumberManagerXiaoMi.setBadgeNumber(context, number);
}
}
static class ImplVIVO implements Impl {
@Override
public void setBadgeNumber(Context context, int number) {
BadgeNumberUtils.setBadgeNumberVIVO(context, number);
}
}
static class ImplOPPO implements Impl {
@Override
public void setBadgeNumber(Context context, int number) {
BadgeNumberUtils.setBadgeNumberOPPO(context, number);
}
}
static class ImplZUK implements Impl {
@Override
public void setBadgeNumber(Context context, int number) {
BadgeNumberUtils.setBadgeNumberZUK(context, number);
}
}
static class ImplSONY implements Impl {
@Override
public void setBadgeNumber(Context context, int number) {
BadgeNumberUtils.setBadgeNumberSony(context, number);
}
}
static class ImplHTC implements Impl {
@Override
public void setBadgeNumber(Context context, int number) {
BadgeNumberUtils.setBadgeNumberHTC (context, number);
}
}
static class ImplNOVA implements Impl {
@Override
public void setBadgeNumber(Context context, int number) {
BadgeNumberUtils.setBadgeNumberNOVA(context, number);
}
}
static class ImplBase implements Impl {
@Override
public void setBadgeNumber(Context context, int number) {
//do nothing
}
}
static {
String manufacturer = Build.MANUFACTURER;
if (manufacturer.equalsIgnoreCase(MobileBrand.HUAWEI)) {
IMPL = new ImplHuaWei();
} else if (manufacturer.equalsIgnoreCase(MobileBrand.XIAOMI)) {
IMPL = new ImplXiaoMi();
} else if (manufacturer.equalsIgnoreCase(MobileBrand.VIVO)) {
IMPL = new ImplVIVO();
} else if (manufacturer.equalsIgnoreCase(MobileBrand.OPPO)) {
IMPL = new ImplOPPO();
} else if (manufacturer.equalsIgnoreCase(MobileBrand.SAMSUNG) || manufacturer.equalsIgnoreCase(MobileBrand.LG)) {
IMPL = new IMplSamsung();
} else if (manufacturer.equalsIgnoreCase(MobileBrand.ZUK)) {
IMPL = new ImplZUK();
} else if (manufacturer.equalsIgnoreCase(MobileBrand.SONY)) {
IMPL = new ImplSONY();
} else if (manufacturer.equalsIgnoreCase(MobileBrand.HTC)) {
IMPL = new ImplHTC();
} else if (manufacturer.equalsIgnoreCase(MobileBrand.NOVA)) {
IMPL = new ImplNOVA();
} else {
IMPL = new ImplBase();
}
}
}
package com.dayu.utils.badgeNumberManger;
import android.app.Notification;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.List;
/**
* Created by luofan
* on 2018/4/10.
*/
public class BadgeNumberUtils {
/**
* 设置应用的桌面角标,已在一些华为手机上测试通过,但是无法保证在所有华为手机上都生效
*
* @param context context
* @param number 角标显示的数字
*/
public static void setBadgeNumberHuaWei(Context context, int number) {
try {
if (number < 0) number = 0;
Bundle bundle = new Bundle();
bundle.putString("package", context.getPackageName());
String launchClassName = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName()).getComponent().getClassName();
bundle.putString("class", launchClassName);
bundle.putInt("badgenumber", number);
context.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, bundle);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void setBadgeNumberOPPO(Context context, int number) {
try {
if (number == 0) {
number = -1;
}
Intent intent = new Intent("com.oppo.unsettledevent");
intent.putExtra("pakeageName", context.getPackageName());
intent.putExtra("number", number);
intent.putExtra("upgradeNumber", number);
if (canResolveBroadcast(context, intent)) {
context.sendBroadcast(intent);
} else {
try {
Bundle extras = new Bundle();
extras.putInt("app_badge_count", number);
context.getContentResolver().call(Uri.parse("content://com.android.badge/badge"), "setAppBadgeCount", null, extras);
} catch (Throwable th) {
Log.e("OPPO" + " Badge error", "unable to resolve intent: " + intent.toString());
}
}
} catch (Exception e) {
e.printStackTrace();
Log.e("OPPO" + " Badge error", "set Badge failed");
}
}
public static boolean canResolveBroadcast(Context context, Intent intent) {
PackageManager packageManager = context.getPackageManager();
List<ResolveInfo> receivers = packageManager.queryBroadcastReceivers(intent, 0);
return receivers != null && receivers.size() > 0;
}
//三星和LG
static void setBadgeNumberSamSung(Context context, int num) {
// 获取你当前的应用
String launcherClassName = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName()).getComponent().getClassName();
try {
Intent intent = new Intent("android.intent.action.BADGE_COUNT_UPDATE");
intent.putExtra("badge_count", num);
intent.putExtra("badge_count_package_name", context.getPackageName());
intent.putExtra("badge_count_class_name", launcherClassName);
context.sendBroadcast(intent);
} catch (Exception e) {
e.printStackTrace();
Log.e("SAMSUNG" + " Badge error", "set Badge failed");
}
}
//vivo
public static void setBadgeNumberVIVO(Context context, int number) {
try {
Intent intent = new Intent("launcher.action.CHANGE_APPLICATION_NOTIFICATION_NUM");
intent.putExtra("packageName", context.getPackageName());
String launchClassName = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName()).getComponent().getClassName();
intent.putExtra("className", launchClassName);
intent.putExtra("notificationNum", number);
context.sendBroadcast(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
//xiaomi
public static void setBadgeNumberXiaoMi(Notification notification, int number) {
try {
Field field = notification.getClass().getDeclaredField("extraNotification");
Object extraNotification = field.get(notification);
Method method = extraNotification.getClass().getDeclaredMethod("setMessageCount", int.class);
method.invoke(extraNotification, number);
} catch (Exception e) {
e.printStackTrace();
}
}
//ZUK
static void setBadgeNumberZUK(Context context, int num) {
final Uri CONTENT_URI = Uri.parse("content://com.android.badge/badge");
try {
Bundle extra = new Bundle();
extra.putInt("app_badge_count", num);
context.getContentResolver().call(CONTENT_URI, "setAppBadgeCount", null, extra);
} catch (Exception e) {
e.printStackTrace();
Log.e("ZUK" + " Badge error", "set Badge failed");
}
}
//索尼
static void setBadgeNumberSony(Context context, int num) {
String numString = "";
// 获取你当前的应用
String activityName = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName()).getComponent().getClassName();
Intent localIntent = new Intent();
// int numInt = Integer.valueOf(num);
boolean isShow = true;
if (num < 1) {
numString = "";
isShow = false;
} else if (num > 99) {
numString = "99";
}
try {
localIntent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", isShow);
localIntent.setAction("com.sonyericsson.home.action.UPDATE_BADGE");
localIntent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", activityName);
localIntent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", numString);
localIntent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", context.getPackageName());
context.sendBroadcast(localIntent);
} catch (Exception e) {
e.printStackTrace();
Log.e("SONY" + " Badge error", "set Badge failed");
}
}
//HTC
static void setBadgeNumberHTC(Context context,int num){
try {
Intent intent1 = new Intent("com.htc.launcher.action.SET_NOTIFICATION");
intent1.putExtra("com.htc.launcher.extra.COMPONENT", context.getPackageManager().getLaunchIntentForPackage(context.getPackageName()).getComponent().flattenToShortString());
intent1.putExtra("com.htc.launcher.extra.COUNT", num);
Intent intent = new Intent("com.htc.launcher.action.UPDATE_SHORTCUT");
intent.putExtra("packagename", context.getPackageName());
intent.putExtra("count", num);
if (canResolveBroadcast(context, intent1) || canResolveBroadcast(context, intent)) {
context.sendBroadcast(intent1);
context.sendBroadcast(intent);
} else {
Log.e("HTC" + " Badge error", "unable to resolve intent: " + intent.toString());
}
}catch (Exception e){
e.printStackTrace();
Log.e("HTC" + " Badge error", "set Badge failed");
}
}
//NOVA
static void setBadgeNumberNOVA(Context context,int num){
try{
ContentValues contentValues = new ContentValues();
contentValues.put("tag", context.getPackageName()+ "/" +context.getPackageManager().getLaunchIntentForPackage(context.getPackageName()).getComponent().getClassName());
contentValues.put("count", num);
context.getContentResolver().insert(Uri.parse("content://com.teslacoilsw.notifier/unread_count"), contentValues);
}catch (Exception e){
e.printStackTrace();
Log.e("NOVA" + " Badge error", "set Badge failed");
}
}
}
package com.dayu.utils.badgeNumberManger;
/**
* 手机的 Build.MANUFACTURER 常量
* Created by zlq on 2017 17/8/22 18:08.
*/
public class MobileBrand {
public final static String HUAWEI = "Huawei";
public final static String MEIZU = "Meizu";
public final static String XIAOMI = "Xiaomi";
public final static String SONY = "Sony";
public final static String OPPO = "OPPO";
public final static String VIVO = "vivo";
public final static String SAMSUNG = "samsung";
public final static String LG = "LG";
public final static String LETV = "Letv";
public final static String ZTE = "ZTE";
public final static String YULONG = "YuLong";
public final static String LENOVO = "LENOVO";
public final static String ZUK="ZUK";
public final static String HTC="HTC";
public final static String NOVA="NOVA";
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment