Browse Source

Adapt Android12: access all file

HOME 1 year ago
parent
commit
9f3c7c8293

+ 4 - 3
MobileAndroid/LnoidWv/LnoidWv.csproj

@@ -16,11 +16,11 @@
     <AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
     <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
     <AndroidUseLatestPlatformSdk>False</AndroidUseLatestPlatformSdk>
-    <TargetFrameworkVersion>v10.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v12.0</TargetFrameworkVersion>
     <AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>True</DebugSymbols>
+    <DebugSymbols>true</DebugSymbols>
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
     <OutputPath>bin\Debug\</OutputPath>
@@ -29,7 +29,7 @@
     <WarningLevel>4</WarningLevel>
     <AndroidUseSharedRuntime>True</AndroidUseSharedRuntime>
     <AndroidLinkMode>Full</AndroidLinkMode>
-    <EmbedAssembliesIntoApk>False</EmbedAssembliesIntoApk>
+    <EmbedAssembliesIntoApk>false</EmbedAssembliesIntoApk>
     <BundleAssemblies>False</BundleAssemblies>
     <AndroidCreatePackagePerAbi>false</AndroidCreatePackagePerAbi>
     <Debugger>Xamarin</Debugger>
@@ -60,6 +60,7 @@
     <EnableProguard>False</EnableProguard>
     <DebugSymbols>False</DebugSymbols>
     <AndroidSupportedAbis>armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
+    <MandroidI18n />
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="Mono.Android" />

+ 21 - 9
MobileAndroid/LnoidWv/MainActivity.cs

@@ -53,7 +53,7 @@ namespace LnoidWv
         public object GetPrefixes(string dataPath, Action<object> cbProcess = null)
         {
             var directories = Directory.GetDirectories(dataPath);
-            
+
             Array.Sort(directories);
 
             var progress = cbProcess == null
@@ -80,7 +80,7 @@ namespace LnoidWv
         public object GetSeries(string prefixPath, Action<object> cbProcess = null)
         {
             var directories = Directory.GetDirectories(prefixPath);
-            
+
             Array.Sort(directories);
 
             var progress = cbProcess == null
@@ -212,6 +212,15 @@ namespace LnoidWv
         // ReSharper disable once UnusedMember.Global
         public string ReadSetting()
         {
+#if !Android22
+            if (Android.OS.Environment.IsExternalStorageManager == false)
+            {
+                var uri = Android.Net.Uri.Parse("package:" + Application.Context.ApplicationInfo.PackageName);
+                var intent = new Intent(Android.Provider.Settings.ActionManageAppAllFilesAccessPermission, uri);
+                _mainActivity.StartActivityForResult(intent, 9527);
+            }
+#endif
+
             var localStorage = _mainActivity.Application.FilesDir.Path;
             var configFilePath = Path.Combine(localStorage, "config.json");
             return File.Exists(configFilePath)
@@ -292,13 +301,13 @@ namespace LnoidWv
     public partial class MainActivity
     {
         private const string MainUrl =
-#if DEBUG
-            "http://192.168.23.97/main.html"
-        //  "http://192.168.1.233/main.html"
-        //  "http://lnoidebugserver/main.html"
-#else
+        //#if DEBUG
+        //            "http://192.168.23.97/main.html"
+        //        //  "http://192.168.1.233/main.html"
+        //        //  "http://lnoidebugserver/main.html"
+        //#else
         "file:///android_asset/main.html"
-#endif
+        //#endif
         ;
 
         private const string JsBindName = "LnoidNativeFunctions";
@@ -312,12 +321,15 @@ namespace LnoidWv
 #if !Android22
             if (CheckSelfPermission(Manifest.Permission.ReadExternalStorage) != Permission.Granted)
                 RequestPermissions(new[] { Manifest.Permission.ReadExternalStorage }, 123321123); //  is an app-defined int constant that should be quite unique
+
+            //var uri = Android.Net.Uri.Parse("package:" + Application.Context.ApplicationInfo.PackageName);
+            //var intent = new Intent(Android.Provider.Settings.ActionManageAppAllFilesAccessPermission, uri, ApplicationContext, GetType());
+            //StartActivity(intent);
 #endif
 
             RequestWindowFeature(WindowFeatures.NoTitle);
 
 
-
 #if DEBUG || WV_DEBUG
 #if !Android22
             if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat)

+ 4 - 3
MobileAndroid/LnoidWv/Properties/AndroidManifest.xml

@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="LnoidWv" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">
-	<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="29" />
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="LnoidWv.LnoidWv" android:versionCode="1" android:versionName="1.0" android:installLocation="internalOnly">
+	<uses-sdk android:minSdkVersion="31" android:targetSdkVersion="31" />
 	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 	<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
 	<uses-permission android:name="android.permission.INTERNET" />
-	<application android:label="!轻小说离线阅读器" android:icon="@drawable/Icon"></application>
+	<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
+	<application android:label="!轻小说离线阅读器"></application>
 </manifest>

+ 6 - 7
MobileAndroid/LnoidWv/Resources/Resource.Designer.cs

@@ -1,11 +1,10 @@
 #pragma warning disable 1591
 //------------------------------------------------------------------------------
 // <auto-generated>
-//     此代码由工具生成。
-//     运行时版本:4.0.30319.42000
+//     This code was generated by a tool.
 //
-//     对此文件的更改可能会导致不正确的行为,并且如果
-//     重新生成代码,这些更改将会丢失。
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
 // </auto-generated>
 //------------------------------------------------------------------------------
 
@@ -15,7 +14,7 @@ namespace LnoidWv
 {
 	
 	
-	[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
+	[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "13.1.0.5")]
 	public partial class Resource
 	{
 		
@@ -44,8 +43,8 @@ namespace LnoidWv
 		public partial class Drawable
 		{
 			
-			// aapt resource value: 0x7F010000
-			public const int Icon = 2130771968;
+			// aapt resource value: 0x7f020000
+			public const int Icon = 2130837504;
 			
 			static Drawable()
 			{