Эх сурвалжийг харах

Apex & drivers
修复第一次启动无定位权限闪退
修复程序切换到后台判断不准确

Ray Zhang 7 жил өмнө
parent
commit
9f4e828fc3

+ 0 - 4
ApexDrivers/RAUtilsLibrary/RAUtilsLibrary.iml

@@ -85,19 +85,15 @@
       <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/attr" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/check-manifest" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/extractedTypedefs" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/intermediate-jars" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaPrecompile" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/library_and_local_jars_jni" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/packaged-aidl" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/packaged-classes" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/packagedAssets" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/packaged_res" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/public_res" />

+ 16 - 1
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/service/RAService.java

@@ -398,7 +398,22 @@ public abstract class RAService extends Service {
     @Override
     public int onStartCommand(Intent intent, int flags, int startId) {
         Log.d("_SERVICE", "onStartCommand");
-        initLocation();
+        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+            // TODO: Consider calling
+            //    ActivityCompat#requestPermissions
+            // here to request the missing permissions, and then overriding
+            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
+            //                                          int[] grantResults)
+            // to handle the case where the user grants the permission. See the documentation
+            // for ActivityCompat#requestPermissions for more details.
+//                return;
+        }
+        else
+        {
+
+            initLocation();
+
+        }
         return super.onStartCommand(intent,flags,startId);
     }
 

+ 28 - 23
ApexDrivers/app/src/main/java/com/usai/redant/apexdrivers/ApexDriverApplication.java

@@ -6,12 +6,10 @@ import android.app.Notification;
 import android.app.NotificationChannel;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
-import android.content.IntentFilter;
 import android.content.ServiceConnection;
 import android.content.SharedPreferences;
 import android.location.Location;
@@ -76,17 +74,18 @@ public class ApexDriverApplication extends Application {
         if(mService!=null)
             mService.initLocation();
     }
-    private BroadcastReceiver screen_event_receiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-//            if (isbackground) {
-                isbackground = true;
-
-//            }
-        }
-    };
+//    private BroadcastReceiver screen_event_receiver = new BroadcastReceiver() {
+//        @Override
+//        public void onReceive(Context context, Intent intent) {
+////            if (isbackground) {
+//                isbackground = true;
+//
+////            }
+//        }
+//    };
 
     private ActivityLifecycleCallbacks activitylcCallbacks =new ActivityLifecycleCallbacks() {
+        private int activityStartCount = 0;
         @Override
         public void onActivityCreated(Activity activity, Bundle bundle) {
 
@@ -94,6 +93,7 @@ public class ApexDriverApplication extends Application {
 
         @Override
         public void onActivityStarted(Activity activity) {
+            activityStartCount++;
             mCurActivity = activity;
         }
 
@@ -120,7 +120,12 @@ public class ApexDriverApplication extends Application {
 
         @Override
         public void onActivityStopped(Activity activity) {
-
+            activityStartCount--;
+            if(activityStartCount==0)
+            {
+                isbackground = true;
+                Log.d("ApexDriverApplication", "onActivityStopped: app go background");
+            }
         }
 
         @Override
@@ -134,22 +139,22 @@ public class ApexDriverApplication extends Application {
         }
     };
 
-    @Override
-    public void onTrimMemory(int level)
-    {
-        super.onTrimMemory(level);
-        if (level == TRIM_MEMORY_UI_HIDDEN) {
-            isbackground = true;
-
-        }
-    }
+//    @Override
+//    public void onTrimMemory(int level)
+//    {
+//        super.onTrimMemory(level);
+//        if (level == TRIM_MEMORY_UI_HIDDEN) {
+//            isbackground = true;
+//
+//        }
+//    }
     @Override
     public void onCreate() {
         Log.d("ApexDriverApplication", "onCreate");
         super.onCreate();
 
-        IntentFilter screenOffFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
-        registerReceiver(screen_event_receiver, screenOffFilter);
+//        IntentFilter screenOffFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
+//        registerReceiver(screen_event_receiver, screenOffFilter);
 
         registerActivityLifecycleCallbacks(activitylcCallbacks);
         mApp = this;

+ 54 - 58
ApexDrivers/app/src/main/java/com/usai/redant/apexdrivers/MainActivity.java

@@ -3,20 +3,15 @@ package com.usai.redant.apexdrivers;
 
 import android.Manifest;
 import android.app.AlertDialog;
-import android.app.NotificationManager;
 import android.app.ProgressDialog;
-import android.content.ComponentName;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
-import android.content.ServiceConnection;
 import android.content.pm.PackageManager;
 import android.graphics.drawable.Drawable;
-import android.location.Location;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
-import android.os.IBinder;
 import android.os.PowerManager;
 import android.provider.Settings;
 import android.support.v4.app.ActivityCompat;
@@ -25,7 +20,6 @@ import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentTransaction;
 import android.support.v4.app.NotificationManagerCompat;
 import android.text.TextUtils;
-import android.util.Log;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.widget.RelativeLayout;
@@ -45,6 +39,8 @@ import org.json.JSONObject;
 
 import java.lang.ref.WeakReference;
 
+//import android.location.Location;
+
 
 public class MainActivity extends BasicActivity implements LoginFragment.LoginCallBack {
 
@@ -76,64 +72,64 @@ public class MainActivity extends BasicActivity implements LoginFragment.LoginCa
         RAUtil.LibTest1();
 
 
-        if(true)
-            return;
-
-//        String en1=AESUtil.encrypt256("usai1234usai1234usai1234usai1234","ABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZ--ABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZ");
-//        String de1=AESUtil.decrypt256("usai1234usai1234usai1234usai1234",en1);
-//        Log.d("AES256", "EN: "+en1+"   DE: "+de1);
-
-//        String en2=AESUtil.encrypt256("usai1234","ABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZ--ABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZ");
-//        String de2=AESUtil.decrypt256("usai1234",en2);
-//        Log.d("AES256", "EN: "+en2+"   DE: "+de2);
+//        if(true)
+//            return;
 //
+////        String en1=AESUtil.encrypt256("usai1234usai1234usai1234usai1234","ABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZ--ABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZ");
+////        String de1=AESUtil.decrypt256("usai1234usai1234usai1234usai1234",en1);
+////        Log.d("AES256", "EN: "+en1+"   DE: "+de1);
+//
+////        String en2=AESUtil.encrypt256("usai1234","ABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZ--ABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZ");
+////        String de2=AESUtil.decrypt256("usai1234",en2);
+////        Log.d("AES256", "EN: "+en2+"   DE: "+de2);
+////
+////
+////        String en3=AESUtil.encrypt256("usai1234","ABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZ--ABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZ");
+////        String de3=AESUtil.decrypt256("usai1234",en3);
+////        Log.d("AES256", "EN: "+en3+"   DE: "+de3);
 //
-//        String en3=AESUtil.encrypt256("usai1234","ABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZ--ABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZABCDE$3&))@!_*FGHIJ^%KLMNOPQRSTUVWXYZ");
-//        String de3=AESUtil.decrypt256("usai1234",en3);
-//        Log.d("AES256", "EN: "+en3+"   DE: "+de3);
-
-
-
-
-
-        if(true)
-            return;
-        ServiceConnection serviceConnection= new ServiceConnection(){
-
-            @Override
-            public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
-                ApexDriversBackgroundService.MyBinder binder;
-                binder = (ApexDriversBackgroundService.MyBinder)iBinder;
-                ApexDriversBackgroundService service = (ApexDriversBackgroundService)binder.getService();
-
-                Location l=service.RequestCachedLocation();
-                if(l!=null)
-                    Log.d("", "RequestLocation: "+l.toString());
-
-            }
-
-            @Override
-            public void onServiceDisconnected(ComponentName componentName) {
-
-            }
-        };
-
-        Intent intent = new Intent(MainActivity.this, ApexDriversBackgroundService.class);
-
-        bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
-
-
-
-
 
 
-        int FLAG_LOCATION_NONE = 0 ;
 
-        int FLAG_LOCATION_SERVICE = 1 << 1;
-        int FLAG_NOTIFICATION_SERVICE = 1 << 2;
-        int FLAG_UPLOAD_SERVICE = 1 << 3;
 
-        int a = 0;
+//        if(true)
+//            return;
+//        ServiceConnection serviceConnection= new ServiceConnection(){
+//
+//            @Override
+//            public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
+//                ApexDriversBackgroundService.MyBinder binder;
+//                binder = (ApexDriversBackgroundService.MyBinder)iBinder;
+//                ApexDriversBackgroundService service = (ApexDriversBackgroundService)binder.getService();
+//
+//                Location l=service.RequestCachedLocation();
+//                if(l!=null)
+//                    Log.d("", "RequestLocation: "+l.toString());
+//
+//            }
+//
+//            @Override
+//            public void onServiceDisconnected(ComponentName componentName) {
+//
+//            }
+//        };
+//
+//        Intent intent = new Intent(MainActivity.this, ApexDriversBackgroundService.class);
+//
+//        bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
+//
+//
+//
+//
+//
+//
+//        int FLAG_LOCATION_NONE = 0 ;
+//
+//        int FLAG_LOCATION_SERVICE = 1 << 1;
+//        int FLAG_NOTIFICATION_SERVICE = 1 << 2;
+//        int FLAG_UPLOAD_SERVICE = 1 << 3;
+//
+//        int a = 0;
     }
 
     @Override