Anda di halaman 1dari 25

Ao de la consolidacin del Mar de Grau.

FACULTAD DE INGENIERA
ESCUELA DE INGENIERA DE SISTEMAS
TEMA

Messenger para la empresa WAYRA DISTRIBUTION

CURSO

programacin de aplicaciones mviles

DOCENTE

Danny Jos Montoya negrillo

TURNO

CICLO

maana
:

VII

INTEGRANTES :
Guevara hurtado maycol
Pea lozada enrique

2016-02

ndice
I.

II.

III.
IV.
V.

GENERALIDADES
I.1.
TITULO
I.2.
INTEGRANTES
I.3.
DOCENTE
I.4.
NOMBRE DE LA EMPRESA A AUDITAR
I.5.
TIPO DE PROYECTO
I.6.
DURACIN DEL PROYECTO
METODOLOGUIA
II.1. INTRODUCCIN
II.2. METODOLOGA SCRUM
II.3. CUANDO EMPLEAR SCRUM
II.4. PROCESO DE SCRUM
II.5. ACTIVIDADES DE SCRUM
II.6. EJECUCIN DE SCRUM
II.7. INSPECCIN Y ADAPTACIN
II.8. BENEFICIOS
II.9. INFORMACIN DE LA EMPRESA
SOFTWATE DESCRIPCIN
III.1. DESCRIPCIN
III.2. CDIGO
BIBLIOGRAFA
ANEXOS

GENERALIDADES
TITULO
Messenger para la empresa WAYRA DISTRIBUTION S.A
INTEGRANTES
Guevara hurtado maycol
Pea lozada enrique

DOCENTE
Danny Jos Montoya negrillo
NOMBRE DE LA EMPRESA
WAYRA DISTRIBUTION S.A (ruc: 20557476017)
TIPO
Messenger
DURACIN
40 das

METODOLOGA

INTRODUCCIN

La tecnologa informtica es una herramienta estratgica que brinda


rentabilidad y ventajas competitivas a los negocios frente a otros
negocios similares en el mercado, pero que puede originar costos y
desventajas si no es correctamente administrada por personal
especializado.
A pesar de que se invierte miles y en ocasiones millones de dlares en
equipo de tecnologa de punta para lograr los objetivos econmicos que
se propone una empresa, actualmente nos encontramos con que
muchas organizaciones sufren de incidentes en donde se viola la
seguridad fsica de sus instalaciones por terceros e inclusive por
personal interno, esto posiblemente se debe, a que la seguridad fsica
es en muchas ocasiones tomada como un elemento de "menor prioridad
", sea por iniciativa corporativa o por omisin.
Por ende, la finalidad de este trabajo es el poder dar una buena
comunicacin mediante el Messenger donde se analicen los riesgos y
vulnerabilidades que puedan afectar a la informacin, as como las
medidas o pautas que se deben seguir para proteger la integridad de la
informacin.
El presente informe, realizado por estudiantes de la Universidad Cesar
Vallejo, plantea un estudio detallado de los diversos factores que
puedan estar influyendo en las operaciones en el rea de Sistemas de
la empresa WAYRA DISTRIBUTION S.A (ruc: 20557476017), a fin de
brindar las soluciones y recomendaciones pertinentes

METODOLOGIA SCRUM
La metodologa Scrum es un proceso en el cual se aplican de manera regular un
conjunto de buenas prcticas para trabajar en equipo, y obtener el mejor resultado
posible de un proyecto. Estas prcticas se apoyan unas a otras y su seleccin

tiene origen en un estudio de la manera de trabajar de equipos altamente


productivos.
En Scrum se realizan entregas parciales y regulares del producto final, priorizadas
por el beneficio que aportan al receptor del proyecto. Por ello, Scrum est
especialmente indicado para proyectos en entornos complejos, donde se
necesita obtener resultados pronto, donde los requisitos son cambiantes o poco
definidos,
donde
la innovacin,
la competitividad,
la flexibilidad y
la productividad son fundamentales.
Cundo emplear Scrum?
Con la metodologa Scrum el cliente se entusiasma y se compromete con el
proyecto dado que lo ve crecer iteracin a iteracin. Asimismo le permite en
cualquier momento realinear el software con los objetivos de negocio de su
empresa, ya que puede introducir cambios funcionales o de prioridad en el inicio
de cada nueva iteracin sin ningn problema. Esta metodologa de trabajo
promueve la innovacin, motivacin y compromiso del equipo que forma parte del
proyecto, por lo que los profesionales encuentran un mbito propicio para
desarrollar sus capacidades.
EL PROCESO
En Scrum un proyecto se ejecuta en bloques temporales cortos y
fijos (iteraciones que normalmente son de 2 semanas, aunque en algunos equipos
son de 3 y hasta 4 semanas, lmite mximo de feedback y reflexin). Cada
iteracin tiene que proporcionar un resultado completo, un incremento de producto
final que sea susceptible de ser entregado con el mnimo esfuerzo al cliente
cuando lo solicite.
El proceso parte de la lista de objetivos/requisitos priorizada del producto, que
acta como plan del proyecto. En esta lista el cliente prioriza los objetivos
balanceando el valor que le aportan respecto a su coste y quedan repartidos en
iteraciones y entregas.

Las actividades que se llevan a cabo en Scrum son las siguientes:

Planificacin de la iteracin
El primer da de la iteracin se realiza la reunin de planificacin de la iteracin.
Tiene dos partes:
1.

Seleccin de requisitos (4 horas mximo). El cliente


presenta al equipo la lista de requisitos priorizada del producto o proyecto.
El equipo pregunta al cliente las dudas que surgen y selecciona los
requisitos ms prioritarios que se compromete a completar en la iteracin,
de manera que puedan ser entregados si el cliente lo solicita.

2.

Planificacin de la iteracin (4 horas mximo). El


equipo elabora la lista de tareas de la iteracin necesarias para desarrollar
los requisitos a que se ha comprometido. La estimacin de esfuerzo se
hace de manera conjunta y los miembros del equipo se auto asignan las
tareas.

Ejecucin de la iteracin
Cada da el equipo realiza una reunin de sincronizacin (15 minutos mximos).
Cada miembro del equipo inspecciona el trabajo que el resto est realizando
(dependencias entre tareas, progreso hacia el objetivo de la iteracin, obstculos
que pueden impedir este objetivo) para poder hacer las adaptaciones necesarias
que permitan cumplir con el compromiso adquirido. En la reunin cada miembro
del equipo responde a tres preguntas:
Qu he hecho desde la ltima reunin de sincronizacin?
Qu voy a hacer a partir de este momento?
Qu impedimentos tengo o voy a tener?
Durante la iteracin el Facilitador (Scrum Master) se encarga de que el
equipo pueda cumplir con su compromiso y de que no se merme su
productividad.
Elimina los obstculos que el equipo no puede resolver por s mismo.
Protege al equipo de interrupciones externas que puedan afectar su
compromiso o su productividad.
Durante la iteracin, el cliente junto con el equipo refinan la lista de requisitos (para
prepararlos para las siguientes iteraciones) y, si es necesario, cambian o re

planifican los objetivos del proyecto para maximizar la utilidad de lo que se


desarrolla y el retorno de inversin.

Inspeccin y adaptacin
El ltimo da de la iteracin se realiza la reunin de revisin de la iteracin. Tiene
dos partes:
1. Demostracin (4 horas mximo). El equipo presenta al cliente los requisitos
completados en la iteracin, en forma de incremento de producto
preparado para ser entregado con el mnimo esfuerzo. En funcin de los
resultados mostrados y de los cambios que haya habido en el contexto del
proyecto, el cliente realiza las adaptaciones necesarias de manera
objetiva, ya desde la primera iteracin, re planificando el proyecto.
2. Retrospectiva (4 horas mximo). El equipo analiza cmo ha sido su
manera de trabajar y cules son los problemas que podran impedirle
progresar adecuadamente, mejorando de manera continua su
productividad. El Facilitador se encargar de ir eliminando los obstculos
identificados.
Beneficios

Cumplimento de expectativas: El cliente establece sus expectativas


indicando el valor que le aporta cada requisito / historia del proyecto, el
equipo los estima y con esta informacin el Product Owner establece su
prioridad. De manera regular, en las demos de Sprint el Product
Owner comprueba que efectivamente los requisitos se han cumplido y
transmite se feedback al equipo.

Flexibilidad a cambios: Alta capacidad de reaccin ante los


cambios de requerimientos generados por necesidades del cliente o
evoluciones del mercado. La metodologa est diseada para adaptarse a
los cambios de requerimientos que conllevan los proyectos complejos.

Reduccin del Time to Market: El cliente puede empezar a


utilizar las funcionalidades ms importantes del proyecto antes de que est
finalizado por completo.

Mayor calidad del software: La metdica de trabajo y la


necesidad de obtener una versin funcional despus de cada iteracin,
ayuda a la obtencin de un software de calidad superior.

Mayor productividad: Se consigue entre otras razones,


gracias a la eliminacin de la burocracia y a la motivacin del equipo que
proporciona el hecho de que sean autnomos para organizarse.

Maximiza el retorno de la inversin (ROI): Produccin de


software nicamente con las prestaciones que aportan mayor valor de
negocio gracias a la priorizacin por retorno de inversin.

Predicciones de tiempos: Mediante esta metodologa se


conoce la velocidad media del equipo por sprint (los llamados puntos
historia), con lo que consecuentemente, es posible estimar fcilmente para
cuando se dispondr de una determinada funcionalidad que todava est
en el Backlog.

Reduccin de riesgos: El hecho de llevar a cabo las


funcionalidades de ms valor en primer lugar y de conocer la velocidad con
que el equipo avanza en el proyecto, permite despejar riesgos eficazmente
de manera anticipada.
WAYRA DISTRIBUTION

Wayra Distribution es una empresa joven y dinmica que nace para brindar
soluciones de logstica y transporte a empresas, convirtindose as en una de las
ms prestigiosas empresas dedicada exclusivamente a estos servicios.
Brindando soluciones en mensajera y paquetera terrestre comercial, dando
siempre el mejor servicio de valor agregado para nuestros clientes, mejorndolo
continuamente; y aumentando la eficiencia y la productividad de las compaas,
siempre con el compromiso de mantener los niveles ms altos de calidad y
confiabilidad en el servicio entregado.
Por qu existimos y para qu?
Brindar el apoyo completo a nuestros clientes tanto en Mensajera Local,
Paquetera Terrestre a nivel nacional como tambin el Servicio de Courier
Internacional manteniendo nuestros principios en:

Calidad: para un servicio completo y de primer nivel

Eficiencia: Para saber que los servicios se realizan de la forma que fueron
pedidos.

Compromiso: Porque su objetivos son nuestros objetivos.

Respeto: Porque nos gusta tratar como nos tratan.

Sinceridad: Porque es la base de toda buena relacin.

Nuestro personal
Todo nuestro personal cuenta con las siguientes caractersticas:

Uniforme con logo de la empresa.

Carne de Identificacin.

Todos son evaluados previamente con pruebas psicolgicas laborales.

Capacitacin contina en seminarios de atencin al cliente.

Todos los operadores cuentan con un equipo de radio, para poder mantener
informado al cliente en tiempo real la situacin de su correspondencia

OFICINA PRINCIPAL
DIRECCI
CAL.MARTIN
DE
N:
MURUA NRO. 160 URB.
MARANGA LIMA - LIMA SAN MIGUEL
TELEFONO (511) 4648787
:
TELEFONO
(dueo :nieto crdenas
CONTACTO Gutirrez)( jefe de ti:

Martin
guzmn
Hernndez)(
Gerente
general : estais ramos
Adolfo)

OBJETIVOS DE LA INVESTIGACIN
GENERAL
Realizar un Messenger para la empresa WAYRA DISTRIBUTION S.A
con el fin de tener comunicacin entre los trabajadores .Por ende aplicar
barreras fsicas y procedimientos de control, como medidas de
prevencin y contramedida ante determinadas amenazas, a fin que se
logre una utilizacin ms eficiente y segura de la informacin que servir
para una adecuada toma de decisiones.
ESPECFICOS
1. Evaluar los controles fsicos de acceso al rea de sistemas.
2. Evaluar y verificar el cumplimiento de los estndares, polticas de
personal, normas, procedimientos de control del rea de sistemas.
3. Evaluar las medidas de proteccin fsica contra las amenazas externas
y de origen ambiental de los equipos informticos. (incendios,
humedad, etc.).

4. Evaluar el control que se tiene sobre el mantenimiento de los equipos y


planes de contingencia.
5. Evaluar

el estado del sistema de cableado estructurado y de las

instalaciones elctricas.
6. Evaluar la reutilizacin o retirada segura de equipos.

DESCRIPCIN
En esta primera pantalla est programada para ingresar un nombre de usuario
nuevo o ya existente en la base de datos.

DESCRIPCIN
En esta segunda pantalla est programada para testear con un grupo de 5
personas al mismo momento como se ver a continuacin.

1. EL PRIMER PASO PARA USAR LA APLICACIN


INGRESAR UN NOMBRE DE TU AGRADO.

2. SEGUNDO PASO HACER CLICK EN LOGIN.

3. TE ABRIRA UNA VENTANA DE MENSAJERIA.

4. PARA INICIAR LA CONVERSACION EN LA OPCION DE


RECEPTOR ESCRIBIRAS EL NOMBRE DE
LA PERSONA CON LA CUAL DESEAS CHATEAR.

5. LUEGO ESCRIBIR TU MENSAJE Y CLICK ENVIAR.

6. ASI PODRAS INICIAR UNA AMENA CONVERSACION CON TU GRUPO DE


TRABAJO.

CDIGO
BaseActivity.java

package com.sinch.android.rtc.sample.messaging;
import
import
import
import
import
import

android.app.Activity;
android.content.ComponentName;
android.content.Intent;
android.content.ServiceConnection;
android.os.Bundle;
android.os.IBinder;

public abstract class BaseActivity extends Activity implements


ServiceConnection {
private SinchService.SinchServiceInterface mSinchServiceInterface;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getApplicationContext().bindService(new Intent(this,
SinchService.class), this,
BIND_AUTO_CREATE);
}
@Override
public void onServiceConnected(ComponentName componentName, IBinder
iBinder) {
if
(SinchService.class.getName().equals(componentName.getClassName())) {
mSinchServiceInterface = (SinchService.SinchServiceInterface)
iBinder;
onServiceConnected();
}
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
if
(SinchService.class.getName().equals(componentName.getClassName())) {
mSinchServiceInterface = null;
onServiceDisconnected();
}
}
protected void onServiceConnected() {
// for subclasses
}
protected void onServiceDisconnected() {
// for subclasses
}
protected SinchService.SinchServiceInterface
getSinchServiceInterface() {
return mSinchServiceInterface;
}

LoginActivity.java
package com.sinch.android.rtc.sample.messaging;
import com.sinch.android.rtc.SinchError;
import
import
import
import
import
import
import
import

android.app.ProgressDialog;
android.content.Intent;
android.os.Bundle;
android.view.View;
android.view.View.OnClickListener;
android.widget.Button;
android.widget.EditText;
android.widget.Toast;

public class LoginActivity extends BaseActivity implements


SinchService.StartFailedListener {
private Button mLoginButton;
private EditText mLoginName;
private ProgressDialog mSpinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
mLoginButton = (Button) findViewById(R.id.loginButton);
mLoginButton.setEnabled(false);
mLoginName = (EditText) findViewById(R.id.loginName);
mLoginButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
loginClicked();
}
});
}
@Override
protected void onServiceConnected() {
mLoginButton.setEnabled(true);
getSinchServiceInterface().setStartListener(this);
}
@Override
protected void onPause() {
if (mSpinner != null) {
mSpinner.dismiss();
}
super.onPause();
}
@Override
public void onStartFailed(SinchError error) {

Toast.makeText(this, error.toString(), Toast.LENGTH_LONG).show();


if (mSpinner != null) {
mSpinner.dismiss();
}
}
@Override
public void onStarted() {
openMessagingActivity();
}
private void loginClicked() {
String userName = mLoginName.getText().toString();
if (userName.isEmpty()) {
Toast.makeText(this, "Please enter a name",
Toast.LENGTH_LONG).show();
return;
}
if (!getSinchServiceInterface().isStarted()) {
getSinchServiceInterface().startClient(userName);
showSpinner();
} else {
openMessagingActivity();
}
}
private void openMessagingActivity() {
Intent messagingActivity = new Intent(this,
MessagingActivity.class);
startActivity(messagingActivity);
}
private void showSpinner() {
mSpinner = new ProgressDialog(this);
mSpinner.setTitle("Logging in");
mSpinner.setMessage("Please wait...");
mSpinner.show();
}
}

MessageAdapter.java
package com.sinch.android.rtc.sample.messaging;
import
import
import
import
import
import
import

android.app.Activity;
android.util.Pair;
android.view.LayoutInflater;
android.view.View;
android.view.ViewGroup;
android.widget.BaseAdapter;
android.widget.TextView;

import com.sinch.android.rtc.messaging.Message;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

public class MessageAdapter extends BaseAdapter {


public static final int DIRECTION_INCOMING = 0;
public static final int DIRECTION_OUTGOING = 1;
private List<Pair<Message, Integer>> mMessages;
private SimpleDateFormat mFormatter;
private LayoutInflater mInflater;
public MessageAdapter(Activity activity) {
mInflater = activity.getLayoutInflater();
mMessages = new ArrayList<Pair<Message, Integer>>();
mFormatter = new SimpleDateFormat("HH:mm");
}
public void addMessage(Message message, int direction) {
mMessages.add(new Pair(message, direction));
notifyDataSetChanged();
}
@Override
public int getCount() {
return mMessages.size();
}
@Override
public Object getItem(int i) {
return mMessages.get(i);
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int i) {
return mMessages.get(i).second;
}
@Override
public View getView(int i, View convertView, ViewGroup viewGroup) {
int direction = getItemViewType(i);
if (convertView == null) {
int res = 0;
if (direction == DIRECTION_INCOMING) {
res = R.layout.message_right;
} else if (direction == DIRECTION_OUTGOING) {
res = R.layout.message_left;

}
convertView = mInflater.inflate(res, viewGroup, false);
}
Message message = mMessages.get(i).first;
String name = message.getSenderId();
TextView txtSender = (TextView)
convertView.findViewById(R.id.txtSender);
TextView txtMessage = (TextView)
convertView.findViewById(R.id.txtMessage);
TextView txtDate = (TextView)
convertView.findViewById(R.id.txtDate);
txtSender.setText(name);
txtMessage.setText(message.getTextBody());
txtDate.setText(mFormatter.format(message.getTimestamp()));
}

return convertView;

MessagingActivity.java
package com.sinch.android.rtc.sample.messaging;
import
import
import
import
import
import

com.sinch.android.rtc.PushPair;
com.sinch.android.rtc.messaging.Message;
com.sinch.android.rtc.messaging.MessageClient;
com.sinch.android.rtc.messaging.MessageClientListener;
com.sinch.android.rtc.messaging.MessageDeliveryInfo;
com.sinch.android.rtc.messaging.MessageFailureInfo;

import
import
import
import
import
import
import

android.os.Bundle;
android.util.Log;
android.view.View;
android.widget.Button;
android.widget.EditText;
android.widget.ListView;
android.widget.Toast;

import java.util.List;
public class MessagingActivity extends BaseActivity implements
MessageClientListener {
private static final String TAG =
MessagingActivity.class.getSimpleName();
private
private
private
private

MessageAdapter mMessageAdapter;
EditText mTxtRecipient;
EditText mTxtTextBody;
Button mBtnSend;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.messaging);

mTxtRecipient = (EditText) findViewById(R.id.txtRecipient);


mTxtTextBody = (EditText) findViewById(R.id.txtTextBody);
mMessageAdapter = new MessageAdapter(this);
ListView messagesList = (ListView) findViewById(R.id.lstMessages);
messagesList.setAdapter(mMessageAdapter);
mBtnSend = (Button) findViewById(R.id.btnSend);
mBtnSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sendMessage();
}
});
}
@Override
public void onDestroy() {
if (getSinchServiceInterface() != null) {
getSinchServiceInterface().removeMessageClientListener(this);
}
super.onDestroy();
}
@Override
public void onServiceConnected() {
getSinchServiceInterface().addMessageClientListener(this);
setButtonEnabled(true);
}
@Override
public void onServiceDisconnected() {
setButtonEnabled(false);
}
private void sendMessage() {
String recipient = mTxtRecipient.getText().toString();
String textBody = mTxtTextBody.getText().toString();
if (recipient.isEmpty()) {
Toast.makeText(this, "No recipient added",
Toast.LENGTH_SHORT).show();
return;
}
if (textBody.isEmpty()) {
Toast.makeText(this, "No text message",
Toast.LENGTH_SHORT).show();
return;
}

getSinchServiceInterface().sendMessage(recipient, textBody);
mTxtTextBody.setText("");

private void setButtonEnabled(boolean enabled) {


mBtnSend.setEnabled(enabled);
}
@Override
public void onIncomingMessage(MessageClient client, Message message) {

mMessageAdapter.addMessage(message,
MessageAdapter.DIRECTION_INCOMING);
}
@Override
public void onMessageSent(MessageClient client, Message message,
String recipientId) {
mMessageAdapter.addMessage(message,
MessageAdapter.DIRECTION_OUTGOING);
}
@Override
public void onShouldSendPushData(MessageClient client, Message
message, List<PushPair> pushPairs) {
// Left blank intentionally
}
@Override
public void onMessageFailed(MessageClient client, Message message,
MessageFailureInfo failureInfo) {
StringBuilder sb = new StringBuilder();
sb.append("Sending failed: ")
.append(failureInfo.getSinchError().getMessage());
Toast.makeText(this, sb.toString(), Toast.LENGTH_LONG).show();
Log.d(TAG, sb.toString());
}
@Override
public void onMessageDelivered(MessageClient client,
MessageDeliveryInfo deliveryInfo) {
Log.d(TAG, "onDelivered");
}
}

SinchService.java
package com.sinch.android.rtc.sample.messaging;
import
import
import
import
import

android.app.Service;
android.content.Intent;
android.os.Binder;
android.os.IBinder;
android.util.Log;

import com.sinch.android.rtc.*;
import com.sinch.android.rtc.messaging.MessageClientListener;
import com.sinch.android.rtc.messaging.WritableMessage;
public class SinchService extends Service {
private static final String APP_KEY = "enter-application-key";
private static final String APP_SECRET = "enter-application-secret";
private static final String ENVIRONMENT = "sandbox.sinch.com";
private static final String TAG = SinchService.class.getSimpleName();
private final SinchServiceInterface mServiceInterface = new
SinchServiceInterface();

private SinchClient mSinchClient = null;


private StartFailedListener mListener;
public class SinchServiceInterface extends Binder {
public boolean isStarted() {
return SinchService.this.isStarted();
}
public void startClient(String userName) {
start(userName);
}
public void stopClient() {
stop();
}
public void setStartListener(StartFailedListener listener) {
mListener = listener;
}
public void sendMessage(String recipientUserId, String textBody) {
SinchService.this.sendMessage(recipientUserId, textBody);
}
public void addMessageClientListener(MessageClientListener
listener) {
SinchService.this.addMessageClientListener(listener);
}
public void removeMessageClientListener(MessageClientListener
listener) {
SinchService.this.removeMessageClientListener(listener);
}
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onDestroy() {
if (mSinchClient != null && mSinchClient.isStarted()) {
mSinchClient.terminate();
}
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent) {
return mServiceInterface;
}
private boolean isStarted() {
return (mSinchClient != null && mSinchClient.isStarted());
}

public void sendMessage(String recipientUserId, String textBody) {


if (isStarted()) {
WritableMessage message = new WritableMessage(recipientUserId,
textBody);
mSinchClient.getMessageClient().send(message);
}
}
public void addMessageClientListener(MessageClientListener listener) {
if (mSinchClient != null) {
mSinchClient.getMessageClient().addMessageClientListener(listener);
}
}
public void removeMessageClientListener(MessageClientListener
listener) {
if (mSinchClient != null) {
mSinchClient.getMessageClient().removeMessageClientListener(listener);
}
}
private void start(String userName) {
if (mSinchClient == null) {
mSinchClient =
Sinch.getSinchClientBuilder().context(getApplicationContext()).userId(user
Name)
.applicationKey(APP_KEY)
.applicationSecret(APP_SECRET)
.environmentHost(ENVIRONMENT).build();
mSinchClient.setSupportMessaging(true);
mSinchClient.startListeningOnActiveConnection();
mSinchClient.addSinchClientListener(new
MySinchClientListener());
mSinchClient.start();
}
}
private void stop() {
if (mSinchClient != null) {
mSinchClient.terminate();
mSinchClient = null;
}
}
public interface StartFailedListener {
void onStartFailed(SinchError error);
}

void onStarted();

private class MySinchClientListener implements SinchClientListener {


@Override
public void onClientFailed(SinchClient client, SinchError error) {

if (mListener != null) {
mListener.onStartFailed(error);
}
mSinchClient.terminate();
mSinchClient = null;

@Override
public void onClientStarted(SinchClient client) {
Log.d(TAG, "SinchClient started");
if (mListener != null) {
mListener.onStarted();
}
}
@Override
public void onClientStopped(SinchClient client) {
Log.d(TAG, "SinchClient stopped");
}
@Override
public void onLogMessage(int level, String area, String message) {
switch (level) {
case Log.DEBUG:
Log.d(area, message);
break;
case Log.ERROR:
Log.e(area, message);
break;
case Log.INFO:
Log.i(area, message);
break;
case Log.VERBOSE:
Log.v(area, message);
break;
case Log.WARN:
Log.w(area, message);
break;
}
}

@Override
public void onRegistrationCredentialsRequired(SinchClient client,
ClientRegistration clientRegistration) {
}

AndroidManifest.xml
?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sinch.android.rtc.sample.messaging"
android:versionCode="1"
android:versionName="1.0">
<uses-feature
android:name="android.hardware.microphone"
android:required="false"/>

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".LoginActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category
android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".MessagingActivity"
android:screenOrientation="portrait"/>
<service android:name=".SinchService"/>
</application>
</manifest>

Anda mungkin juga menyukai