sdk/src/com/socialize/util/DefaultAppUtils.java
@Override
	public boolean isNotificationsAvailable(Context context) {

		if(!notificationsAssessed) {
			
		    String permissionString = context.getPackageName() + ".permission.C2D_MESSAGE";
		    
			boolean ok = true;
			
			if(config.getBooleanProperty(SocializeConfig.SOCIALIZE_NOTIFICATIONS_ENABLED, true)) {
				if(!hasPermission(context, permissionString)) {
					lastNotificationWarning = "Notifications not available, permission [" + permissionString + "] not specified in AndroidManifest.xml";
					if(logger.isInfoEnabled()) logger.info(lastNotificationWarning);
					ok = false;
				}
				
				if(!hasPermission(context, "com.google.android.c2dm.permission.RECEIVE")) {
					lastNotificationWarning = "Notifications not available, permission com.google.android.c2dm.permission.RECEIVE not specified in AndroidManifest.xml, or device does not include Google APIs";
					if(logger.isInfoEnabled()) logger.info(lastNotificationWarning);
					ok = false;
				}
				
				if(config.isEntityLoaderCheckEnabled() && getSocialize().getEntityLoader() == null) {
					lastNotificationWarning = "Notifications not available. Entity loader not found.";
					if(logger.isInfoEnabled()) logger.info(lastNotificationWarning);
					ok = false;
				}
			}
			else {
				ok = false;
				if(logger.isDebugEnabled()) {
					logger.debug("SmartAlerts disabled in config");
				}
			}
			
			notificationsAvailable = ok;
			notificationsAssessed = true;
		}
		else if(!notificationsAvailable) {
			if(lastNotificationWarning != null && logger.isInfoEnabled()) {
				logger.info(lastNotificationWarning);
			}
		}

		return notificationsAvailable;
	}
@Override
	public boolean isNotificationsAvailable(Context context) {

		if(!notificationsAssessed) {
			
		    String permissionString = context.getPackageName() + ".permission.C2D_MESSAGE";
		    
			boolean ok = true;
			
			if(config.getBooleanProperty(SocializeConfig.SOCIALIZE_NOTIFICATIONS_ENABLED, true)) {
				if(!hasPermission(context, permissionString)) {
					lastNotificationWarning = "Notifications not available, permission [" + permissionString + "] not specified in AndroidManifest.xml";
					if(logger.isInfoEnabled()) logger.info(lastNotificationWarning);
					ok = false;
				}
				
				if(!hasPermission(context, "com.google.android.c2dm.permission.RECEIVE")) {
					lastNotificationWarning = "Notifications not available, permission com.google.android.c2dm.permission.RECEIVE not specified in AndroidManifest.xml, or device does not include Google APIs";
					if(logger.isInfoEnabled()) logger.info(lastNotificationWarning);
					ok = false;
				}
				
				if(config.isEntityLoaderCheckEnabled() && getSocialize().getEntityLoader() == null) {
					lastNotificationWarning = "Notifications not available. Entity loader not found.";
					if(logger.isInfoEnabled()) logger.info(lastNotificationWarning);
					ok = false;
				}
			}
			else {
				ok = false;
				if(logger.isDebugEnabled()) {
					logger.debug("SmartAlerts disabled in config");
				}
			}
			
			notificationsAvailable = ok;
			notificationsAssessed = true;
		}
		else if(!notificationsAvailable) {
			if(lastNotificationWarning != null && logger.isInfoEnabled()) {
				logger.info(lastNotificationWarning);
			}
		}

		return notificationsAvailable;
	}
/* (non-Javadoc)
@see com.socialize.util.IAppUtils#isNotificationsAvaiable(android.content.Context)