Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
NewParkAPP
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
YONG-LIN SU
NewParkAPP
Commits
f235a6ec
Commit
f235a6ec
authored
Aug 08, 2022
by
YONG-LIN SU
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
加入 Android 11 兼容
parent
e0991649
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
54 additions
and
3 deletions
+54
-3
deploymentTargetDropDown.xml
.idea/deploymentTargetDropDown.xml
+2
-2
app-release.apk
app/release/app-release.apk
+0
-0
output-metadata.json
app/release/output-metadata.json
+20
-0
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+8
-0
MainActivity.java
.../main/java/ecom/android/newparkapp/view/MainActivity.java
+24
-1
key.jks
key.jks
+0
-0
No files found.
.idea/deploymentTargetDropDown.xml
View file @
f235a6ec
...
@@ -7,11 +7,11 @@
...
@@ -7,11 +7,11 @@
<deviceKey>
<deviceKey>
<Key>
<Key>
<type
value=
"SERIAL_NUMBER"
/>
<type
value=
"SERIAL_NUMBER"
/>
<value
value=
"
JCAXB7655018EJ6
"
/>
<value
value=
"
577125220043
"
/>
</Key>
</Key>
</deviceKey>
</deviceKey>
</Target>
</Target>
</runningDeviceTargetSelectedWithDropDown>
</runningDeviceTargetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown
value=
"2022-08-05T
01:02:16.8620694
00Z"
/>
<timeTargetWasSelectedWithDropDown
value=
"2022-08-05T
13:23:48.1473046
00Z"
/>
</component>
</component>
</project>
</project>
\ No newline at end of file
app/release/app-release.apk
0 → 100644
View file @
f235a6ec
File added
app/release/output-metadata.json
0 → 100644
View file @
f235a6ec
{
"version"
:
3
,
"artifactType"
:
{
"type"
:
"APK"
,
"kind"
:
"Directory"
},
"applicationId"
:
"ecom.android.newparkapp"
,
"variantName"
:
"release"
,
"elements"
:
[
{
"type"
:
"SINGLE"
,
"filters"
:
[],
"attributes"
:
[],
"versionCode"
:
1
,
"versionName"
:
"Dev Ver.0.8.0"
,
"outputFile"
:
"app-release.apk"
}
],
"elementType"
:
"File"
}
\ No newline at end of file
app/src/main/AndroidManifest.xml
View file @
f235a6ec
...
@@ -3,6 +3,13 @@
...
@@ -3,6 +3,13 @@
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
package=
"ecom.android.newparkapp"
>
package=
"ecom.android.newparkapp"
>
<!-- Android 11 調用相機拍照意圖 註冊 -->
<queries>
<intent>
<action
android:name=
"android.media.action.IMAGE_CAPTURE"
/>
</intent>
</queries>
<uses-permission
android:name=
"android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission
android:name=
"android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission
android:name=
"android.permission.BLUETOOTH_CONNECT"
/>
<uses-permission
android:name=
"android.permission.BLUETOOTH_CONNECT"
/>
<uses-permission
android:name=
"android.permission.BLUETOOTH_SCAN"
/>
<uses-permission
android:name=
"android.permission.BLUETOOTH_SCAN"
/>
...
@@ -17,6 +24,7 @@
...
@@ -17,6 +24,7 @@
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.FOREGROUND_SERVICE"
/>
<uses-permission
android:name=
"android.permission.FOREGROUND_SERVICE"
/>
<!-- android 11 管理所有檔案權限 -->
<uses-permission
android:name=
"android.permission.MANAGE_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.MANAGE_EXTERNAL_STORAGE"
/>
<application
<application
...
...
app/src/main/java/ecom/android/newparkapp/view/MainActivity.java
View file @
f235a6ec
...
@@ -3,8 +3,11 @@ package ecom.android.newparkapp.view;
...
@@ -3,8 +3,11 @@ package ecom.android.newparkapp.view;
import
static
android
.
Manifest
.
permission
.
ACCESS_COARSE_LOCATION
;
import
static
android
.
Manifest
.
permission
.
ACCESS_COARSE_LOCATION
;
import
static
android
.
Manifest
.
permission
.
ACCESS_FINE_LOCATION
;
import
static
android
.
Manifest
.
permission
.
ACCESS_FINE_LOCATION
;
import
static
android
.
Manifest
.
permission
.
ACCESS_LOCATION_EXTRA_COMMANDS
;
import
static
android
.
Manifest
.
permission
.
ACCESS_LOCATION_EXTRA_COMMANDS
;
import
static
android
.
Manifest
.
permission
.
MANAGE_EXTERNAL_STORAGE
;
import
static
android
.
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
;
import
static
android
.
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
;
import
static
android
.
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
;
import
static
android
.
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
;
import
static
android
.
os
.
Environment
.
isExternalStorageManager
;
import
static
android
.
provider
.
Settings
.
ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
;
import
static
ecom
.
android
.
newparkapp
.
Common
.
copyModelFromAssetsToData
;
import
static
ecom
.
android
.
newparkapp
.
Common
.
copyModelFromAssetsToData
;
...
@@ -12,7 +15,9 @@ import android.content.Intent;
...
@@ -12,7 +15,9 @@ import android.content.Intent;
import
android.content.pm.PackageInfo
;
import
android.content.pm.PackageInfo
;
import
android.content.pm.PackageManager
;
import
android.content.pm.PackageManager
;
import
android.icu.util.BuddhistCalendar
;
import
android.icu.util.BuddhistCalendar
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.os.Parcelable
;
import
android.widget.Toast
;
import
android.widget.Toast
;
import
androidx.activity.result.ActivityResultLauncher
;
import
androidx.activity.result.ActivityResultLauncher
;
...
@@ -38,6 +43,7 @@ public class MainActivity extends AppCompatActivity {
...
@@ -38,6 +43,7 @@ public class MainActivity extends AppCompatActivity {
private
T01SettingViewModel
t01SettingViewModel
;
private
T01SettingViewModel
t01SettingViewModel
;
private
ActivityResultLauncher
<
String
[]>
requestPermissionLauncher
;
private
ActivityResultLauncher
<
String
[]>
requestPermissionLauncher
;
private
ActivityResultLauncher
requestAllFilesAccessPermissionLauncher
;
// Android 11 以上需申請較高權限
private
String
[]
permissions
=
new
String
[]{
WRITE_EXTERNAL_STORAGE
,
READ_EXTERNAL_STORAGE
,
private
String
[]
permissions
=
new
String
[]{
WRITE_EXTERNAL_STORAGE
,
READ_EXTERNAL_STORAGE
,
ACCESS_COARSE_LOCATION
,
ACCESS_FINE_LOCATION
,
ACCESS_LOCATION_EXTRA_COMMANDS
};
ACCESS_COARSE_LOCATION
,
ACCESS_FINE_LOCATION
,
ACCESS_LOCATION_EXTRA_COMMANDS
};
private
MutableLiveData
<
Boolean
>
hasPermissions
=
new
MutableLiveData
<>();
private
MutableLiveData
<
Boolean
>
hasPermissions
=
new
MutableLiveData
<>();
...
@@ -56,7 +62,9 @@ public class MainActivity extends AppCompatActivity {
...
@@ -56,7 +62,9 @@ public class MainActivity extends AppCompatActivity {
// 註冊權限請求結果處理
// 註冊權限請求結果處理
resultLauncherRegister
();
resultLauncherRegister
();
// 檢查權限
// 檢查權限
permissionRequest
();
//permissionRequest();
// 兼容 Android 11 權限檢查
permissionRequestAndroid11
();
// 監聽權限驗證變化
// 監聽權限驗證變化
// 有權限再綁定按鈕功能
// 有權限再綁定按鈕功能
...
@@ -108,6 +116,17 @@ public class MainActivity extends AppCompatActivity {
...
@@ -108,6 +116,17 @@ public class MainActivity extends AppCompatActivity {
}
}
}
}
private
void
permissionRequestAndroid11
(){
// TODO: 2022/8/8 針對 Android 11以上版本,權限進行兼容
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
if
(!
isExternalStorageManager
())
{
requestAllFilesAccessPermissionLauncher
.
launch
(
new
Intent
(
ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
));
return
;
}
}
permissionRequest
();
}
/**
/**
* @return 檢查所有權限
* @return 檢查所有權限
*/
*/
...
@@ -138,6 +157,10 @@ public class MainActivity extends AppCompatActivity {
...
@@ -138,6 +157,10 @@ public class MainActivity extends AppCompatActivity {
}
}
);
);
requestAllFilesAccessPermissionLauncher
=
registerForActivityResult
(
new
ActivityResultContracts
.
StartActivityForResult
(),
result
->
{
permissionRequest
();
});
settingActivityResultLauncher
=
registerForActivityResult
(
new
ActivityResultContracts
.
StartActivityForResult
(),
result
->
{
settingActivityResultLauncher
=
registerForActivityResult
(
new
ActivityResultContracts
.
StartActivityForResult
(),
result
->
{
// 重新讀取setting
// 重新讀取setting
t01SettingViewModel
.
restorePrefs
();
t01SettingViewModel
.
restorePrefs
();
...
...
key.jks
0 → 100644
View file @
f235a6ec
File added
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment