3
In the monitoring it sends an SMS to a device that responds with another SMS and update the screen and at the moment it calls the method to update the screen of the error. Error log:
01-14 22:45:30.907: E/AndroidRuntime(8661): FATAL EXCEPTION: main
01-14 22:45:30.907: E/AndroidRuntime(8661): Process: com.example.acquaconnect, PID: 8661
01-14 22:45:30.907: E/AndroidRuntime(8661): java.lang.RuntimeException: Unable to start receiver com.example.acquaconnect.ReceberSms: java.lang.NullPointerException
01-14 22:45:30.907: E/AndroidRuntime(8661): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2441)
01-14 22:45:30.907: E/AndroidRuntime(8661): at android.app.ActivityThread.access$1700(ActivityThread.java:139)
01-14 22:45:30.907: E/AndroidRuntime(8661): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1286)
01-14 22:45:30.907: E/AndroidRuntime(8661): at android.os.Handler.dispatchMessage(Handler.java:102)
01-14 22:45:30.907: E/AndroidRuntime(8661): at android.os.Looper.loop(Looper.java:136)
01-14 22:45:30.907: E/AndroidRuntime(8661): at android.app.ActivityThread.main(ActivityThread.java:5097)
01-14 22:45:30.907: E/AndroidRuntime(8661): at java.lang.reflect.Method.invokeNative(Native Method)
01-14 22:45:30.907: E/AndroidRuntime(8661): at java.lang.reflect.Method.invoke(Method.java:515)
01-14 22:45:30.907: E/AndroidRuntime(8661): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
01-14 22:45:30.907: E/AndroidRuntime(8661): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
01-14 22:45:30.907: E/AndroidRuntime(8661): at dalvik.system.NativeStart.main(Native Method)
01-14 22:45:30.907: E/AndroidRuntime(8661): Caused by: java.lang.NullPointerException
01-14 22:45:30.907: E/AndroidRuntime(8661): at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:173)
01-14 22:45:30.907: E/AndroidRuntime(8661): at com.example.acquaconnect.Monitoramento.AtualizaTela(Monitoramento.java:128)
01-14 22:45:30.907: E/AndroidRuntime(8661): at com.example.acquaconnect.ReceberSms.AtualizaBD(ReceberSms.java:225)
01-14 22:45:30.907: E/AndroidRuntime(8661): at com.example.acquaconnect.ReceberSms.onReceive(ReceberSms.java:63)
01-14 22:45:30.907: E/AndroidRuntime(8661): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2434)
01-14 22:45:30.907: E/AndroidRuntime(8661): ... 10 more
Code Monitoring:
public class Monitoramento extends ActionBarActivity{
private static final String CATEGORIA = "acqua";
private static final String PREF_NAME = "BD";
TextView monit1,monit2,monit3,monit4,monit5,monit6,monit7,monit8,monit9,monit10,
monit11,monit12,monit13,monit14,monit15,monit16,monit17;
String numero ;
String M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16,M17;
String L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,L17;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.monitoramento);
Button legenda = (Button) findViewById(R.id.butLegenda);
Button atualizar = (Button) findViewById(R.id.butAtualizar);
monit1 = (TextView) findViewById(R.id.Monit1);
monit2 = (TextView) findViewById(R.id.Monit2);
monit3 = (TextView) findViewById(R.id.Monit3);
monit4 = (TextView) findViewById(R.id.Monit4);
monit5 = (TextView) findViewById(R.id.Monit5);
monit6 = (TextView) findViewById(R.id.Monit6);
monit7 = (TextView) findViewById(R.id.Monit7);
monit8 = (TextView) findViewById(R.id.Monit8);
monit9 = (TextView) findViewById(R.id.Monit9);
monit10 = (TextView) findViewById(R.id.Monit10);
monit11 = (TextView) findViewById(R.id.Monit11);
monit12 = (TextView) findViewById(R.id.Monit12);
monit13 = (TextView) findViewById(R.id.Monit13);
monit14 = (TextView) findViewById(R.id.Monit14);
monit15 = (TextView) findViewById(R.id.Monit15);
monit16 = (TextView) findViewById(R.id.Monit16);
monit17 = (TextView) findViewById(R.id.Monit17);
// VERIFY SHAREDPREFERENCES
SharedPreferences sp = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
M1 = sp.getString("monit_1", "Desabilitado");
M2 = sp.getString("monit_2", "Desabilitado");
M3 = sp.getString("monit_3", "Desabilitado");
M4 = sp.getString("monit_4", "Desabilitado");
M5 = sp.getString("monit_5", "Desabilitado");
M6 = sp.getString("monit_6", "Desabilitado");
M7 = sp.getString("monit_7", "Desabilitado");
M8 = sp.getString("monit_8", "Desabilitado");
M9 = sp.getString("monit_9", "Desabilitado");
M10 = sp.getString("monit_10", "Desabilitado");
M11 = sp.getString("monit_11", "Desabilitado");
M12 = sp.getString("monit_12", "Desabilitado");
M13 = sp.getString("monit_13", "Desabilitado");
M14 = sp.getString("monit_14", "Desabilitado");
M15 = sp.getString("monit_15", "Desabilitado");
M16 = sp.getString("monit_16", "Desabilitado");
M17 = sp.getString("monit_17", "Desabilitado");
String numcel = sp.getString("num_cel", "");
L1 = sp.getString("leg_1", "Desabilitado");
L2 = sp.getString("leg_2", "Desabilitado");
L3 = sp.getString("leg_3", "Desabilitado");
L4 = sp.getString("leg_4", "Desabilitado");
L5 = sp.getString("leg_5", "Desabilitado");
L6 = sp.getString("leg_6", "Desabilitado");
L7 = sp.getString("leg_7", "Desabilitado");
L8 = sp.getString("leg_8", "Desabilitado");
L9 = sp.getString("leg_9", "Desabilitado");
L10 = sp.getString("leg_10", "Desabilitado");
L11 = sp.getString("leg_11", "Desabilitado");
L12 = sp.getString("leg_12", "Desabilitado");
L13 = sp.getString("leg_13", "Desabilitado");
L14 = sp.getString("leg_14", "Desabilitado");
L15 = sp.getString("leg_15", "Desabilitado");
L16 = sp.getString("leg_16", "Desabilitado");
L17 = sp.getString("leg_17", "Desabilitado");
//Exibe o valor na tela
monit1.setText(M1);
monit2.setText(M2);
monit3.setText(M3);
monit4.setText(M4);
monit5.setText(M5);
monit6.setText(M6);
monit7.setText(M7);
monit8.setText(M8);
monit9.setText(M9);
monit10.setText(M10);
monit11.setText(M11);
monit12.setText(M12);
monit13.setText(M13);
monit14.setText(M14);
monit15.setText(M15);
monit16.setText(M16);
monit17.setText(M17);
numero = numcel;
}
//------------BOTAO-ATUALIZAR--------------
public void butAtualizar(View v){
String mensagem = "*st1";
Sms sms = new Sms();
sms.enviarSms(Monitoramento.this, numero,mensagem);
}
public void butLegenda(View v){
finish();
startActivity(new Intent(getApplicationContext(), Legenda.class));
}
public void AtualizaTela(){
SharedPreferences sp = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
M1 = sp.getString("monit_1", "Desabilitado");
M2 = sp.getString("monit_2", "Desabilitado");
M3 = sp.getString("monit_3", "Desabilitado");
M4 = sp.getString("monit_4", "Desabilitado");
M5 = sp.getString("monit_5", "Desabilitado");
M6 = sp.getString("monit_6", "Desabilitado");
M7 = sp.getString("monit_7", "Desabilitado");
M8 = sp.getString("monit_8", "Desabilitado");
M9 = sp.getString("monit_9", "Desabilitado");
M10 = sp.getString("monit_10", "Desabilitado");
M11 = sp.getString("monit_11", "Desabilitado");
M12 = sp.getString("monit_12", "Desabilitado");
M13 = sp.getString("monit_13", "Desabilitado");
M14 = sp.getString("monit_14", "Desabilitado");
M15 = sp.getString("monit_15", "Desabilitado");
M16 = sp.getString("monit_16", "Desabilitado");
M17 = sp.getString("monit_17", "Desabilitado");
//Exibe o valor na tela
monit1.setText(M1);
monit2.setText(M2);
monit3.setText(M3);
monit4.setText(M4);
monit5.setText(M5);
monit6.setText(M6);
monit7.setText(M7);
monit8.setText(M8);
monit9.setText(M9);
monit10.setText(M10);
monit11.setText(M11);
monit12.setText(M12);
monit13.setText(M13);
monit14.setText(M14);
monit15.setText(M15);
monit16.setText(M16);
monit17.setText(M17);
}
//-----------BOTÃO DE VOLTAR--------------------
@Override
public void onBackPressed() {
finish();
startActivity(new Intent(getApplicationContext(), Usuario.class));
}
//-----------FIM BOTÃO DE VOLTAR--------------------
}//fim
Line of Error :
In AtualizaTela()
SharedPreferences sp = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
Code Receber sms:
public class ReceberSms extends BroadcastReceiver {
private static final String CATEGORIA = "acqua";
private static final String PREF_NAME = "BD";
String L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,L17;
String M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16,M17;
@Override
public void onReceive(Context context, Intent intent) {
Sms sms = new Sms();
//Lê a mensagem
SmsMessage msg = sms.receberMensagem(intent);
String celular = msg.getDisplayOriginatingAddress();
String mensagem = msg.getDisplayMessageBody();
// VERIFY SHAREDPREFERENCES
SharedPreferences sp = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
String numcel = sp.getString("num_cel", "");
if(celular.equals(numcel)){
if(mensagem.contains("MONIT-110")){
SharedPreferences.Editor editor = sp.edit();
editor.putString("mensagem_cel_monit", mensagem);
editor.putString("alarme_on", "yes");
editor.commit();
//chama outra activity
intent = new Intent(context, CriaNotificacao.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}else if(mensagem.contains("STATUS-110")){
SharedPreferences.Editor editor = sp.edit();
editor.putString("mensagem_cel_status", mensagem);
editor.commit();
AtualizaBD(context);
}
}
}//fim receive
public void AtualizaBD(Context context){
// VERIFY SHAREDPREFERENCES
SharedPreferences sp = context.getSharedPreferences(PREF_NAME, context.MODE_PRIVATE);
L1 = sp.getString("leg_1", "Desabilitado");
L2 = sp.getString("leg_2", "Desabilitado");
L3 = sp.getString("leg_3", "Desabilitado");
L4 = sp.getString("leg_4", "Desabilitado");
L5 = sp.getString("leg_5", "Desabilitado");
L6 = sp.getString("leg_6", "Desabilitado");
L7 = sp.getString("leg_7", "Desabilitado");
L8 = sp.getString("leg_8", "Desabilitado");
L9 = sp.getString("leg_9", "Desabilitado");
L10 = sp.getString("leg_10", "Desabilitado");
L11 = sp.getString("leg_11", "Desabilitado");
L12 = sp.getString("leg_12", "Desabilitado");
L13 = sp.getString("leg_13", "Desabilitado");
L14 = sp.getString("leg_14", "Desabilitado");
L15 = sp.getString("leg_15", "Desabilitado");
L16 = sp.getString("leg_16", "Desabilitado");
L17 = sp.getString("leg_17", "Desabilitado");
SharedPreferences.Editor editor = sp.edit();
String mensagemStatus = sp.getString("mensagem_cel_status", "");
if(L1.equals("Desabilitado")){
editor.putString("monit_1", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("E01-DES")){editor.putString("monit_1", "Não");editor.commit();
}else if(mensagemStatus.contains("E01-ATI")){editor.putString("monit_1", "Sim");editor.commit();}
}
if(L2.equals("Desabilitado")){
editor.putString("monit_2", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("E02-DES")){editor.putString("monit_2", "Não");editor.commit();
}else if(mensagemStatus.contains("E02-ATI")){editor.putString("monit_2", "Sim");editor.commit();}
}
if(L3.equals("Desabilitado")){
editor.putString("monit_3", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("E03-DES")){editor.putString("monit_3", "Não");editor.commit();
}else if(mensagemStatus.contains("E03-ATI")){editor.putString("monit_3", "Sim");editor.commit();}
}
if(L4.equals("Desabilitado")){
editor.putString("monit_4", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("E04-DES")){editor.putString("monit_4", "Não");editor.commit();
}else if(mensagemStatus.contains("E04-ATI")){editor.putString("monit_4", "Sim");editor.commit();}
}
if(L5.equals("Desabilitado")){
editor.putString("monit_5", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("E05-DES")){editor.putString("monit_5", "Não");editor.commit();
}else if(mensagemStatus.contains("E05-ATI")){editor.putString("monit_5", "Sim");editor.commit();}
}
if(L6.equals("Desabilitado")){
editor.putString("monit_6", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("E06-DES")){editor.putString("monit_6", "Não");editor.commit();
}else if(mensagemStatus.contains("E06-ATI")){editor.putString("monit_6", "Sim");editor.commit();}
}
if(L7.equals("Desabilitado")){
editor.putString("monit_7", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("E07-DES")){editor.putString("monit_7", "Desligado");editor.commit();
}else if(mensagemStatus.contains("E07-ATI")){editor.putString("monit_7", "Ligado");editor.commit();}
}
if(L8.equals("Desabilitado")){
editor.putString("monit_8", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("E08-DES")){editor.putString("monit_8", "Desligado");editor.commit();
}else if(mensagemStatus.contains("E08-ATI")){editor.putString("monit_8", "Ligado");editor.commit();}
}
if(L9.equals("Desabilitado")){
editor.putString("monit_9", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("E09-DES")){editor.putString("monit_9", "Desligado");editor.commit();
}else if(mensagemStatus.contains("E09-ATI")){editor.putString("monit_9", "Ligado");editor.commit();}
}
if(L10.equals("Desabilitado")){
editor.putString("monit_10", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("E10-DES")){editor.putString("monit_10", "Desligado");editor.commit();
}else if(mensagemStatus.contains("E10-ATI")){editor.putString("monit_10", "Ligado");editor.commit();}
}
if(L11.equals("Desabilitado")){
editor.putString("monit_11", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("E11-DES")){editor.putString("monit_11", "Desligado");editor.commit();
}else if(mensagemStatus.contains("E11-ATI")){editor.putString("monit_11", "Ligado");editor.commit();}
}
if(L12.equals("Desabilitado")){
editor.putString("monit_12", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("S01-DES")){editor.putString("monit_12", "Manual"); editor.putBoolean("but_1", false);editor.commit();
}else if(mensagemStatus.contains("S01-ATI")){editor.putString("monit_12", "Automático"); editor.putBoolean("but_1", true);editor.commit();}
}
if(L13.equals("Desabilitado")){
editor.putString("monit_13", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("S02-DES")){editor.putString("monit_13", "Manual"); editor.putBoolean("but_2", false);editor.commit();
}else if(mensagemStatus.contains("S02-ATI")){editor.putString("monit_13", "Automático"); editor.putBoolean("but_2", true);editor.commit();}
}
if(L14.equals("Desabilitado")){
editor.putString("monit_14", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("S03-DES")){editor.putString("monit_14", "Manual"); editor.putBoolean("but_3", false);editor.commit();
}else if(mensagemStatus.contains("S03-ATI")){editor.putString("monit_14", "Automático"); editor.putBoolean("but_3", true);editor.commit();}
}
if(L15.equals("Desabilitado")){
editor.putString("monit_15", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("S04-DES")){editor.putString("monit_15", "Manual");editor.putBoolean("but_4", false);editor.commit();
}else if(mensagemStatus.contains("S04-ATI")){editor.putString("monit_15", "Automático"); editor.putBoolean("but_4", true);editor.commit();}
}
if(L16.equals("Desabilitado")){
editor.putString("monit_16", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("S05-DES")){editor.putString("monit_16", "Manual"); editor.putBoolean("but_5", false);editor.commit();
}else if(mensagemStatus.contains("S05-ATI")){editor.putString("monit_16", "Automático"); editor.putBoolean("but_6", true);editor.commit();}
}
if(L17.equals("Desabilitado")){
editor.putString("monit_17", "Desabilitado");editor.commit();
}else{
if(mensagemStatus.contains("S06-DES")){editor.putString("monit_17", "Manual"); editor.putBoolean("but_6", false);editor.commit();
}else if(mensagemStatus.contains("S06-ATI")){editor.putString("monit_17", "Automático"); editor.putBoolean("but_6", true);editor.commit();}
}
Monitoramento moni = new Monitoramento();
moni.AtualizaTela();
}//fim aatualiza
}//fim
Lines of the errors:
In AtualizaBD()
moni.AtualizarTela();
In onRceive()
AtualizaBD(context);
Take a look at this answer: http://stackoverflow.com/a/5991458/4443230 -- It seems that getSharedPreferences can only be called after Oncreate da Activity.
– André Ribeiro
is that it was working right, but when I changed the receipt to call a method of another class that gave the error
– Jéssica Luiza
Associate a: Try { //your code } catch (Jsonexception e) { e.printStackTrace(); }
– Lollipop
To understand the mistake.
– Lollipop
Identifies line 128 of
Monitoramento.java
, 225 ofReceberSms.java
and 63 ofReceberSms.java
.– Jorge B.
edited and placed the lines of the @Jorgeb error.
– Jéssica Luiza