Skip to content

Commit ebf98fe

Browse files
authored
Merge pull request #27 from youfeng11/main
说是修复SAF授权设置的初始目录未生效的问题
2 parents 2322491 + 9f720fe commit ebf98fe

1 file changed

Lines changed: 15 additions & 9 deletions

File tree

app/src/main/java/com/fcl/plugin/mobileglues/MainActivity.kt

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import androidx.activity.result.contract.ActivityResultContracts
3333
import androidx.appcompat.app.AppCompatActivity
3434
import androidx.core.app.ActivityCompat
3535
import androidx.core.content.ContextCompat
36-
import androidx.core.net.toUri
3736
import androidx.core.view.WindowInsetsCompat
3837
import androidx.documentfile.provider.DocumentFile
3938
import androidx.lifecycle.lifecycleScope
@@ -50,8 +49,6 @@ import kotlinx.coroutines.launch
5049
import kotlinx.coroutines.withContext
5150
import java.io.File
5251
import java.sql.Types
53-
import java.util.logging.Level
54-
import java.util.logging.Logger
5552
import kotlin.system.exitProcess
5653
import com.google.android.material.R as MDC_R
5754

@@ -446,7 +443,7 @@ class MainActivity : AppCompatActivity(), AdapterView.OnItemSelectedListener,
446443
)
447444
}
448445
} catch (e: Exception) {
449-
Logger.getLogger("MG").log(Level.WARNING, "移除 SAF 权限失败", e)
446+
Log.w("MG", "移除 SAF 权限失败", e)
450447
}
451448
}
452449

@@ -570,11 +567,20 @@ class MainActivity : AppCompatActivity(), AdapterView.OnItemSelectedListener,
570567
)
571568
.setPositiveButton(R.string.dialog_positive) { _, _ ->
572569
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
573-
// EXTRA_INITIAL_URI 是可选的,但可以改善用户体验
574-
intent.putExtra(
575-
DocumentsContract.EXTRA_INITIAL_URI,
576-
(Environment.getExternalStorageDirectory().toString() + "/MG").toUri()
577-
)
570+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
571+
// 1. 获取外部存储文档提供者的根 URI
572+
val rootUri = DocumentsContract.buildTreeDocumentUri(
573+
"com.android.externalstorage.documents",
574+
"primary" // "primary" 通常代表内部共享存储
575+
)
576+
577+
// 2. 在根 URI 的基础上构建指向 "MG" 文件夹的 Document-URI
578+
// Document ID 的格式是 "root:path"
579+
val folderDocumentId = "primary:MG"
580+
val initialUri = DocumentsContract.buildDocumentUriUsingTree(rootUri, folderDocumentId)
581+
582+
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, initialUri)
583+
}
578584
safLauncher.launch(intent)
579585
}
580586
.setNegativeButton(R.string.dialog_negative) { dialog, _ -> dialog.dismiss() }

0 commit comments

Comments
 (0)