MainActivity.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.example.mysmsapp;
  2. import android.app.role.RoleManager;
  3. import android.content.Intent;
  4. import android.os.Build;
  5. import android.os.Bundle;
  6. import android.provider.Settings;
  7. import android.util.Log;
  8. import android.widget.Toast;
  9. import androidx.activity.EdgeToEdge;
  10. import androidx.annotation.Nullable;
  11. import androidx.appcompat.app.AppCompatActivity;
  12. import androidx.core.graphics.Insets;
  13. import androidx.core.view.ViewCompat;
  14. import androidx.core.view.WindowInsetsCompat;
  15. public class MainActivity extends AppCompatActivity {
  16. private static final String TAG = "MainActivity";
  17. @Override
  18. protected void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20. EdgeToEdge.enable(this);
  21. setContentView(R.layout.activity_main);
  22. ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
  23. Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
  24. v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
  25. return insets;
  26. });
  27. findViewById(R.id.btn_set_default).setOnClickListener(e -> {
  28. RoleManager roleManager;
  29. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
  30. roleManager = getApplicationContext().getSystemService(RoleManager.class);
  31. if (roleManager.isRoleAvailable(RoleManager.ROLE_SMS)) {
  32. if (roleManager.isRoleHeld(RoleManager.ROLE_SMS)) {
  33. Toast.makeText(getApplicationContext(), "PrismApp set as default.", Toast.LENGTH_SHORT).show();
  34. Intent i = new Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS);
  35. startActivity(i);
  36. } else {
  37. Intent roleRequestIntent = roleManager.createRequestRoleIntent(RoleManager.ROLE_SMS);
  38. startActivityForResult(roleRequestIntent, 1);
  39. }
  40. }
  41. }
  42. });
  43. findViewById(R.id.btn_send_sms).setOnClickListener(e -> {
  44. Intent intent = SmsUtils.getSmsIntent("10086", "Hello, world!");
  45. sendBroadcast(intent);
  46. });
  47. findViewById(R.id.btn_pdu).setOnClickListener(e -> {
  48. byte[] res = SmsUtils.createFakeSms("15077886171", "test");
  49. printPdu(res);
  50. });
  51. }
  52. @Override
  53. protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
  54. super.onActivityResult(requestCode, resultCode, data);
  55. Log.d(TAG, "onActivityResult: ");
  56. }
  57. public static void printPdu(byte[] bytes) {
  58. String s = "";
  59. for (byte b : bytes) {
  60. s += b + ", ";
  61. }
  62. Log.d("PDU", s);
  63. }
  64. }