瀏覽代碼

创建项目

pangweixin 5 年之前
父節點
當前提交
7fd25f79c3

+ 2 - 3
app/build.gradle

@@ -43,9 +43,8 @@ dependencies {
 
     // eventbus
     implementation 'org.greenrobot:eventbus:3.2.0'
-
-    // 权限处理框架
-    implementation 'com.github.tbruyelle:rxpermissions:0.10.2'
+    // 权限请求框架:https://github.com/getActivity/XXPermissions
+    implementation 'com.github.getActivity:XXPermissions:12.0'
     implementation 'io.reactivex.rxjava2:rxjava:2.2.19'
 
     // 解析数据 gson

+ 0 - 13
app/src/main/java/com/qingdaofushan/home/activity/LiveActivity.java

@@ -11,7 +11,6 @@ import android.widget.RelativeLayout;
 import com.qingdaofushan.home.event.EventData;
 import com.qingdaofushan.home.R;
 import com.qingdaofushan.home.utils.ToastUtil;
-import com.tbruyelle.rxpermissions2.RxPermissions;
 
 import org.greenrobot.eventbus.EventBus;
 
@@ -39,18 +38,6 @@ public class LiveActivity extends AppCompatActivity implements View.OnClickListe
             finish();
             return;
         }
-        Observable<Boolean> request = new RxPermissions(this).request(
-                Manifest.permission.CAMERA,
-                Manifest.permission.RECORD_AUDIO
-        );
-        request.subscribe(aBoolean -> {
-            if (aBoolean) {
-
-            } else {
-                ToastUtil.showToast("请允许摄像头、麦克风权限后使用");
-                finish();
-            }
-        });
         initLiveConfig();
         if (!mLiveCameraView.isStreaming()) {
             mLiveCameraView.startStreaming(rtmpUrl);

+ 56 - 30
app/src/main/java/com/qingdaofushan/home/activity/MainActivity.java

@@ -1,26 +1,20 @@
 package com.qingdaofushan.home.activity;
 
-import static com.lzy.okgo.utils.HttpUtils.runOnUiThread;
-
 import androidx.annotation.Nullable;
 import androidx.appcompat.app.AppCompatActivity;
 
-import android.Manifest;
-import android.content.ContentResolver;
 import android.content.Intent;
-import android.database.Cursor;
-import android.graphics.Point;
-import android.net.Uri;
 import android.os.Bundle;
 import android.os.Environment;
-import android.provider.MediaStore;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
 import android.widget.EditText;
-import android.widget.Toast;
 
 import com.google.gson.Gson;
+import com.hjq.permissions.OnPermissionCallback;
+import com.hjq.permissions.Permission;
+import com.hjq.permissions.XXPermissions;
 import com.kongzue.dialogx.dialogs.WaitDialog;
 import com.lzy.okgo.OkGo;
 import com.lzy.okgo.model.Progress;
@@ -41,7 +35,6 @@ import com.qingdaofushan.home.utils.CompressUtil;
 import com.qingdaofushan.home.utils.ToastUtil;
 import com.qingdaofushan.home.view.VersionCheckingUtil;
 import com.qingdaofushan.home.weiview.WebViewActivity;
-import com.tbruyelle.rxpermissions2.RxPermissions;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -71,33 +64,49 @@ public class MainActivity extends AppCompatActivity {
         findViewById(R.id.start).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                initApp("https://pwxmax.cn/homeLifemini.zip",1);
+//                initApp("https://pwxmax.cn/homeLifemini.zip", 1);
 //                mServerManager.startServer();
-//                Intent intent = new Intent(MainActivity.this, WebViewActivity.class);
-////                intent.putExtra("url", editText.getText().toString());
-//                intent.putExtra("url", "http://127.0.0.1:8080");
-//                startActivity(intent);
+                Intent intent = new Intent(MainActivity.this, WebViewActivity.class);
+//                intent.putExtra("url", editText.getText().toString());
+                intent.putExtra("url", "http://127.0.0.1:8080");
+                startActivity(intent);
             }
         });
     }
 
     private void initPermission() {
-        Observable<Boolean> request = new RxPermissions(this).request(
-                Manifest.permission.READ_EXTERNAL_STORAGE,
-                Manifest.permission.CAMERA,
-                Manifest.permission.WRITE_EXTERNAL_STORAGE
-        );
-        request.subscribe(aBoolean -> {
-            if (aBoolean) {
-                // 初始化HTTP服务
-                mServerManager = new ServerManager(this);
-                mServerManager.register();
-                getVM();
-            } else {
-                ToastUtil.showToast("权限被拒绝");
-            }
-        });
+        XXPermissions.with(this)
+                .permission(Permission.NOTIFICATION_SERVICE)
+                .permission(Permission.WRITE_EXTERNAL_STORAGE)
+                .permission(Permission.READ_EXTERNAL_STORAGE)
+                .permission(Permission.CAMERA)
+                .permission(Permission.RECORD_AUDIO)
+                .request(new OnPermissionCallback() {
 
+                    @Override
+                    public void onGranted(List<String> permissions, boolean all) {
+                        if (all) {
+                            // 初始化HTTP服务
+                            mServerManager = new ServerManager(MainActivity.this);
+                            mServerManager.register();
+                            getVM();
+                        } else {
+                            initPermission();
+                            ToastUtil.showToast("获取部分权限成功,但部分权限未正常授予");
+                        }
+                    }
+
+                    @Override
+                    public void onDenied(List<String> permissions, boolean never) {
+                        if (never) {
+                            ToastUtil.showToast("被永久拒绝授权,请手动授予录音和日历权限");
+                            // 如果是被永久拒绝就跳转到应用权限系统设置页面
+                            XXPermissions.startPermissionActivity(MainActivity.this, permissions);
+                        } else {
+                            ToastUtil.showToast("获取录音和日历权限失败");
+                        }
+                    }
+                });
     }
 
     private void initApp(String appWebUrl, int updataType) {
@@ -251,6 +260,23 @@ public class MainActivity extends AppCompatActivity {
         mRootUrl = null;
     }
 
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (requestCode == XXPermissions.REQUEST_CODE) {
+            if (XXPermissions.isGranted(this, Permission.NOTIFICATION_SERVICE)
+                    && XXPermissions.isGranted(this, Permission.WRITE_EXTERNAL_STORAGE)
+                    && XXPermissions.isGranted(this, Permission.READ_EXTERNAL_STORAGE)
+                    && XXPermissions.isGranted(this, Permission.RECORD_AUDIO)
+                    && XXPermissions.isGranted(this, Permission.CAMERA)) {
+
+            } else {
+                ToastUtil.showToast("权限未正常获取");
+                initPermission();
+            }
+        }
+    }
+
     @Override
     protected void onDestroy() {
         super.onDestroy();

+ 2 - 2
app/src/main/java/com/qingdaofushan/home/weiview/WebViewActivity.java

@@ -95,8 +95,8 @@ public class WebViewActivity extends AppCompatActivity {
         mAgentWeb = AgentWeb.with(this)
                 .setAgentWebParent(linearLayout, new LinearLayout.LayoutParams(-1, -1))
                 .closeIndicator()
-                .setWebChromeClient(mWebChromeClient)
-                .setWebViewClient(mWebViewClient)
+//                .setWebChromeClient(mWebChromeClient)
+//                .setWebViewClient(mWebViewClient)
 //                .setPermissionInterceptor(mPermissionInterceptor)
                 .createAgentWeb()
                 .go(url);

+ 2 - 2
app/src/main/res/layout/activity_main.xml

@@ -10,8 +10,8 @@
         android:id="@+id/ed_text"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:text="http://192.168.1.11:8080"
-        android:layout_centerInParent="true" />
+        android:layout_centerInParent="true"
+        android:text="http://192.168.1.11:8080" />
 
     <TextView
         android:id="@+id/start"

+ 1 - 1
app/src/main/res/values/strings.xml

@@ -1,4 +1,4 @@
 <resources>
-    <string name="app_name">居家养老</string>
+    <string name="app_name">床头护理平台</string>
     <string name="FILE_PROVIDER">com.qingdaofushan.home.fileprovider</string>
 </resources>

+ 1 - 0
app/src/main/res/values/themes.xml

@@ -9,6 +9,7 @@
         <item name="colorSecondary">@color/teal_200</item>
         <item name="colorSecondaryVariant">@color/teal_700</item>
         <item name="colorOnSecondary">@color/black</item>
+        <item name="android:windowFullscreen">true</item>
         <!-- Status bar color. -->
         <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
         <!-- Customize your theme here. -->