Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

MainActivity.java 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. package com.rob57530.smsserver;
  2. import android.os.Build;
  3. import android.os.Bundle;
  4. import android.preference.PreferenceManager;
  5. import android.app.Activity;
  6. import android.app.ActivityManager;
  7. import android.app.ActivityManager.RunningServiceInfo;
  8. import android.content.Context;
  9. import android.content.Intent;
  10. import android.content.SharedPreferences;
  11. import android.content.SharedPreferences.Editor;
  12. import android.telephony.TelephonyManager;
  13. import android.view.Menu;
  14. import android.view.View;
  15. import android.widget.Button;
  16. import android.widget.CheckBox;
  17. import android.widget.CompoundButton;
  18. import android.widget.EditText;
  19. import android.widget.Toast;
  20. public class MainActivity extends Activity
  21. {
  22. private Button m_btnStart;
  23. private Button m_btnStop;
  24. private EditText m_textPort;
  25. private EditText m_textHttp;
  26. private EditText m_textName;
  27. private EditText m_textNumber;
  28. @Override
  29. protected void onCreate(Bundle savedInstanceState)
  30. {
  31. super.onCreate(savedInstanceState);
  32. setContentView(R.layout.activity_main);
  33. m_btnStart = (Button) findViewById(R.id.btnStart);
  34. m_btnStop = (Button) findViewById(R.id.btnStop);
  35. m_textPort = (EditText) findViewById(R.id.editTextPort);
  36. m_textHttp = (EditText) findViewById(R.id.editTextHttp);
  37. m_textName = (EditText) findViewById(R.id.editTextName);
  38. m_textNumber = (EditText) findViewById(R.id.editTextNumber);
  39. m_btnStart.setOnClickListener(new View.OnClickListener()
  40. {
  41. @Override
  42. public void onClick(View v)
  43. {
  44. startServer();
  45. }
  46. });
  47. m_btnStop.setOnClickListener(new View.OnClickListener()
  48. {
  49. @Override
  50. public void onClick(View v)
  51. {
  52. stopServer();
  53. }
  54. });
  55. m_textName.setHint(Build.MODEL);
  56. try
  57. {
  58. m_textNumber.setHint(((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE)).getLine1Number());
  59. }
  60. catch (Exception e)
  61. {
  62. }
  63. final SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(this);
  64. m_textHttp.setText(p.getString("http", m_textHttp.getHint().toString()));
  65. m_textName.setText(p.getString("name", m_textName.getHint().toString()));
  66. m_textPort.setText("" + p.getInt("port", 8080));
  67. m_textNumber.setText(p.getString("number", m_textNumber.getHint().toString()));
  68. CheckBox checkBoot = ((CheckBox) findViewById(R.id.checkBoxBoot));
  69. checkBoot.setChecked(p.getBoolean("boot", true));
  70. checkBoot.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
  71. {
  72. @Override
  73. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
  74. {
  75. Editor e = p.edit();
  76. e.putBoolean("boot", isChecked);
  77. e.commit();
  78. }
  79. });
  80. updateButtons();
  81. startServer();
  82. }
  83. public void startServer()
  84. {
  85. int p = 0;
  86. try
  87. {
  88. p = Integer.parseInt(m_textPort.getText().toString());
  89. }
  90. catch (Exception e)
  91. {
  92. }
  93. String http = m_textHttp.getText().toString();
  94. String name = m_textName.getText().toString();
  95. String number = m_textNumber.getText().toString();
  96. SharedPreferences pr = PreferenceManager.getDefaultSharedPreferences(this);
  97. Editor edit = pr.edit();
  98. edit.putString("http", http);
  99. edit.putString("name", name);
  100. edit.putInt("port", p);
  101. edit.putString("number", number);
  102. edit.commit();
  103. try
  104. {
  105. if (http.length() == 0)
  106. throw new Exception("Empty SMS Server");
  107. if (name.length() == 0)
  108. throw new Exception("Empty Name");
  109. if (number.length() == 0)
  110. throw new Exception("Empty Number");
  111. if (p < 1 || p > 65535)
  112. throw new Exception("Invalid Port (1 <= port <= 65535)");
  113. startService(new Intent(MainActivity.this, SMSServerService.class));
  114. updateButtons();
  115. }
  116. catch (Exception e)
  117. {
  118. Toast.makeText(this, "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
  119. }
  120. }
  121. public void stopServer()
  122. {
  123. stopService(new Intent(MainActivity.this, SMSServerService.class));
  124. updateButtons();
  125. }
  126. private boolean isServiceRunning()
  127. {
  128. ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
  129. for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE))
  130. if (SMSServerService.class.getName().equals(service.service.getClassName()))
  131. return true;
  132. return false;
  133. }
  134. private void updateButtons()
  135. {
  136. boolean is = isServiceRunning();
  137. m_btnStart.setEnabled(!is);
  138. m_btnStop.setEnabled(is);
  139. m_textPort.setEnabled(!is);
  140. m_textHttp.setEnabled(!is);
  141. m_textName.setEnabled(!is);
  142. m_textNumber.setEnabled(!is);
  143. }
  144. @Override
  145. public boolean onCreateOptionsMenu(Menu menu)
  146. {
  147. getMenuInflater().inflate(R.menu.main, menu);
  148. return true;
  149. }
  150. }