{"id":26514505,"url":"https://github.com/xenonbyte/permify","last_synced_at":"2026-04-25T08:35:49.921Z","repository":{"id":283139197,"uuid":"950812903","full_name":"xenonbyte/permify","owner":"xenonbyte","description":"Simplify Android runtime and special permissions requests","archived":false,"fork":false,"pushed_at":"2025-03-20T16:39:22.000Z","size":131,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-30T21:08:13.919Z","etag":null,"topics":["android","android-permissions","java","runtime-permissions"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xenonbyte.png","metadata":{"files":{"readme":"README-zh.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-18T18:11:31.000Z","updated_at":"2025-03-20T16:39:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"394309b9-6301-4ac1-ac86-2ecb5e31523e","html_url":"https://github.com/xenonbyte/permify","commit_stats":null,"previous_names":["xenonbyte/permify"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/xenonbyte/permify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xenonbyte%2Fpermify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xenonbyte%2Fpermify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xenonbyte%2Fpermify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xenonbyte%2Fpermify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xenonbyte","download_url":"https://codeload.github.com/xenonbyte/permify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xenonbyte%2Fpermify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32255661,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T04:23:17.126Z","status":"ssl_error","status_checked_at":"2026-04-25T04:21:53.360Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-permissions","java","runtime-permissions"],"created_at":"2025-03-21T05:18:18.959Z","updated_at":"2026-04-25T08:35:49.914Z","avatar_url":"https://github.com/xenonbyte.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# permify\n\n`permify` 是一个 Android 权限请求库，提供简单、灵活的 API 以处理运行时权限和特殊权限请求\n\n## 特性\n\n- **链式 API**：便捷地添加权限并设置回调\n- **自动权限管理**：处理权限请求及结果\n- **支持权限说明 UI**：可在权限请求前弹出自定义提示对话框\n- **兼容性强**：支持 `Activity` and `Fragment`\n- **支持特殊权限**:  \n\n  - `SYSTEM_ALERT_WINDOW`  \n\n  - `WRITE_SETTINGS`  \n\n  - `MANAGE_EXTERNAL_STORAGE`  \n\n  - `REQUEST_INSTALL_PACKAGES`  \n\n## 快速开始\n\n### 申请权限\n\n```java\nPermissionRequest.with(activity)\n        .addPermissions(Manifest.permission.CAMERA)\n        .onResult((success, granted, denied, deniedForever) -\u003e {\n            if (success) {\n                Toast.makeText(context, \"相机权限授予成功\", Toast.LENGTH_SHORT).show();\n            } else {\n                Toast.makeText(context, \"相机权限请求失败\", Toast.LENGTH_SHORT).show();\n            }\n        })\n        .request();\n```\n\n### 使用权限说明 UI（PermissionRationale）\n\n如果需要在请求权限前向用户解释权限用途，可以使用 `PermissionRationale`：\n\n```java\nPermissionRequest.with(fragment)\n        .addPermissions(Manifest.permission.ACCESS_FINE_LOCATION)\n        .onResult(new PermissionRationale() {\n            @Override\n            public void showRationaleUI(@NonNull Context context, @NonNull PermissionRationaleHandler handler) {\n                new AlertDialog.Builder(context)\n                        .setMessage(\"需要位置权限以提供更好的服务\")\n                        .setNegativeButton(\"拒绝\", (dialog, which) -\u003e handler.onDenied())\n                        .setPositiveButton(\"允许\", (dialog, which) -\u003e handler.onAccepted())\n                        .show();\n            }\n\n            @Override\n            public void onResult(boolean success, @NonNull List\u003cString\u003e granted, @NonNull List\u003cString\u003e denied, @NonNull List\u003cString\u003e deniedForever) {\n                if (success) {\n                    Toast.makeText(context, \"位置权限授予成功\", Toast.LENGTH_SHORT).show();\n                } else {\n                    Toast.makeText(context, \"位置权限请求失败\", Toast.LENGTH_SHORT).show();\n                }\n            }\n        })\n        .request();\n```\n\n## Download\n\n在 `build.gradle` 中添加：\n\n```gradle\ndependencies {\n    implementation 'com.github.xenonbyte:permify:1.0.1'\n}\n```\n\n## License\n\nCopyright [2025] [xubo]\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxenonbyte%2Fpermify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxenonbyte%2Fpermify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxenonbyte%2Fpermify/lists"}