diff --git a/app/build.gradle b/app/build.gradle index 353bb4e8..3f963fba 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -48,6 +48,10 @@ 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 'com.github.getActivity:XXPermissions:16.5' + //权限管理 https://github.com/getActivity/XXPermissions + implementation 'com.github.getActivity:XXPermissions:16.8' + // 文件管理 https://github.com/K1rakishou/Fuck-Storage-Access-Framework + implementation 'com.github.K1rakishou:Fuck-Storage-Access-Framework:v1.1.3' + // Android工具类库 https://blankj.com/2016/07/31/android-utils-code/ + implementation 'com.blankj:utilcodex:1.30.1' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7720dc64..d55acb3d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,7 +10,7 @@ android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/Theme.OMQualityInspection" - tools:targetApi="31"> + android:requestLegacyExternalStorage="true"> Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAnchorView(R.id.fab) .setAction("Action", null).show() + // 开始数据导入功能 + fileChooser.openChooseFileDialog(object: FileChooserCallback() { + override fun onCancel(reason: String) { + } + + override fun onResult(uri: Uri) { + val file = UriUtils.uri2File(uri) + Snackbar.make(view, "文件大小为:${file.length()}", Snackbar.LENGTH_LONG) + .show() + } + }) } } + override fun onPermissionsGranted() { + } + + override fun onPermissionsDenied() { + } + override fun onCreateOptionsMenu(menu: Menu): Boolean { // Inflate the menu; this adds items to the action bar if it is present. menuInflater.inflate(R.menu.menu_main, menu) @@ -59,4 +93,13 @@ class MainActivity : AppCompatActivity() { return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp() } + + override fun fsafStartActivityForResult(intent: Intent, requestCode: Int) { + startActivityForResult(intent, requestCode) + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + fileChooser.onActivityResult(requestCode, resultCode, data) + } } \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/omqs/ui/PermissionsActivity.kt b/app/src/main/java/com/navinfo/omqs/ui/PermissionsActivity.kt index 77508544..a175c633 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/PermissionsActivity.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/PermissionsActivity.kt @@ -12,13 +12,17 @@ import com.hjq.permissions.XXPermissions * 权限申请Activity */ abstract class PermissionsActivity : AppCompatActivity() { - override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) { - super.onCreate(savedInstanceState, persistentState) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) XXPermissions.with(this) // 申请单个权限 - .permission(Permission.WRITE_EXTERNAL_STORAGE) - .permission(Permission.READ_EXTERNAL_STORAGE) +// .permission(Permission.WRITE_EXTERNAL_STORAGE) +// .permission(Permission.READ_EXTERNAL_STORAGE) +// .permission(Permission.READ_MEDIA_IMAGES) +// .permission(Permission.READ_MEDIA_AUDIO) +// .permission(Permission.READ_MEDIA_VIDEO) + .permission(Permission.MANAGE_EXTERNAL_STORAGE) // 设置权限请求拦截器(局部设置) //.interceptor(new PermissionInterceptor()) // 设置不触发错误检测机制(局部设置)