@symbiote-native/intent-launcher 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +127 -2
  3. package/build/angular/index.d.ts +1 -0
  4. package/build/angular/index.js +1 -0
  5. package/build/core/index.d.ts +2 -0
  6. package/build/core/index.js +2 -0
  7. package/build/core/intent-launcher.d.ts +8 -0
  8. package/build/core/intent-launcher.js +27 -0
  9. package/build/core/native-module/index.android.d.ts +2 -0
  10. package/build/core/native-module/index.android.js +2 -0
  11. package/build/core/native-module/index.d.ts +2 -0
  12. package/build/core/native-module/index.js +3 -0
  13. package/build/core/native-module/shared.d.ts +6 -0
  14. package/build/core/native-module/shared.js +1 -0
  15. package/build/core/types.d.ts +254 -0
  16. package/build/core/types.js +233 -0
  17. package/build-ngc/angular/index.d.ts +1 -0
  18. package/build-ngc/angular/index.js +2 -0
  19. package/build-ngc/angular/index.js.map +1 -0
  20. package/build-ngc/core/index.d.ts +2 -0
  21. package/build-ngc/core/index.js +3 -0
  22. package/build-ngc/core/index.js.map +1 -0
  23. package/build-ngc/core/intent-launcher.d.ts +8 -0
  24. package/build-ngc/core/intent-launcher.js +28 -0
  25. package/build-ngc/core/intent-launcher.js.map +1 -0
  26. package/build-ngc/core/native-module/index.android.d.ts +2 -0
  27. package/build-ngc/core/native-module/index.android.js +3 -0
  28. package/build-ngc/core/native-module/index.android.js.map +1 -0
  29. package/build-ngc/core/native-module/index.d.ts +2 -0
  30. package/build-ngc/core/native-module/index.js +4 -0
  31. package/build-ngc/core/native-module/index.js.map +1 -0
  32. package/build-ngc/core/native-module/shared.d.ts +6 -0
  33. package/build-ngc/core/native-module/shared.js +2 -0
  34. package/build-ngc/core/native-module/shared.js.map +1 -0
  35. package/build-ngc/core/types.d.ts +254 -0
  36. package/build-ngc/core/types.js +234 -0
  37. package/build-ngc/core/types.js.map +1 -0
  38. package/native-link.json +12 -0
  39. package/package.json +147 -3
  40. package/src/angular/index.ts +1 -0
  41. package/src/core/index.ts +11 -0
  42. package/src/core/intent-launcher.ts +38 -0
  43. package/src/core/native-module/index.android.ts +5 -0
  44. package/src/core/native-module/index.ts +5 -0
  45. package/src/core/native-module/shared.ts +10 -0
  46. package/src/core/types.ts +259 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 A. Prokopenko
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,128 @@
1
- # Temporary Holding Version
1
+ # @symbiote-native/intent-launcher
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Send the user to the right system screen: Wi-Fi settings when the network is off, your app's own
4
+ permission page after a denied prompt, or straight into another app. One API for every
5
+ [SymbioteNative](../../README.md) adapter (React, Vue, Svelte, Solid and Angular).
6
+
7
+ It wraps [`expo-intent-launcher`](https://github.com/expo/expo/tree/main/packages/expo-intent-launcher)
8
+ (launching an Android intent and reading another app's icon). **Android only**: upstream ships no
9
+ iOS implementation, so every function throws `UnavailabilityError` off Android, matching upstream's
10
+ own guard. Built the same way as [`@symbiote-native/print`](../print): an `expo-modules-core`-based
11
+ wrapper (see the `symbiote-expo-native-module` project skill for the full mechanism).
12
+
13
+ ## Install
14
+
15
+ **New app:**
16
+
17
+ ```bash
18
+ npx @symbiote-native/cli new my-app --intent-launcher
19
+ ```
20
+
21
+ **Existing SymbioteNative app:**
22
+
23
+ ```bash
24
+ npx @symbiote-native/cli add --intent-launcher
25
+ ```
26
+
27
+ Either way: installs `@symbiote-native/intent-launcher` and wires the native autolinking
28
+ automatically, see [`@symbiote-native/cli`](../cli).
29
+
30
+ <details>
31
+ <summary>Manual install (no CLI, wiring native autolinking by hand)</summary>
32
+
33
+ ```bash
34
+ npm install @symbiote-native/intent-launcher
35
+ ```
36
+
37
+ `expo-intent-launcher` and `expo-modules-core` come along as regular, pinned dependencies, never
38
+ install either yourself, and never add the `expo` meta-package to this project (it bundles its
39
+ own Metro/Babel pipeline that conflicts with this project's own).
40
+
41
+ ### Required one-time step: native autolinking wiring
42
+
43
+ Unlike a plain RN native module, `expo-intent-launcher`'s native code is discovered by
44
+ `expo-modules-autolinking`, wired into the native host app **once**, covering this package and
45
+ every other `expo-modules-core` package with zero further changes. Full mechanics live in the
46
+ `symbiote-expo-native-module` skill.
47
+
48
+ ### No permissions, no config plugin
49
+
50
+ - **No runtime permission.** Starting an activity or reading another app's icon needs no grant.
51
+ - **No manifest edit.** `expo-intent-launcher`'s own `AndroidManifest.xml` declares nothing.
52
+ - **No config plugin.** Upstream ships none, a clean `native-link.json` with only the Android
53
+ module entry is the whole file.
54
+
55
+ </details>
56
+
57
+ ## Shape
58
+
59
+ ```
60
+ src/core/ startActivityAsync + openApplication + getApplicationIconAsync,
61
+ ActivityAction (Android Settings actions) + ResultCode. The native
62
+ module resolution is Android-only (native-module/index.android.ts);
63
+ the base native-module/index.ts is an empty stub, same as upstream's
64
+ own non-Android ExpoIntentLauncher.ts
65
+ src/angular/ @symbiote-native/intent-launcher/angular
66
+ ```
67
+
68
+ `./react`, `./vue`, `./svelte`, and `./solid` are `exports`-map aliases straight onto `src/core/`,
69
+ every export here is a stateless free function, an enum, or a plain type, nothing to wrap.
70
+ `./angular` stays a physical file/subpath since Angular ships through a separate `ngc`/AOT build
71
+ (`build-ngc/`).
72
+
73
+ ## Use it
74
+
75
+ ```ts
76
+ import { ActivityAction, startActivityAsync } from '@symbiote-native/intent-launcher';
77
+
78
+ await startActivityAsync(ActivityAction.WIFI_SETTINGS);
79
+ ```
80
+
81
+ ```ts
82
+ import { getApplicationIconAsync, openApplication } from '@symbiote-native/intent-launcher';
83
+
84
+ openApplication('com.google.android.gm');
85
+ const icon = await getApplicationIconAsync('com.google.android.gm');
86
+ ```
87
+
88
+ ## API
89
+
90
+ | Export | Signature | Notes |
91
+ | --- | --- | --- |
92
+ | `startActivityAsync` | `(activityAction: ActivityAction \| string, params?: IIntentLauncherParams) => Promise<IIntentLauncherResult>` | Resolves once the user returns to this app |
93
+ | `openApplication` | `(packageName: string) => void` | Fire-and-forget |
94
+ | `getApplicationIconAsync` | `(packageName: string) => Promise<string>` | Base64 PNG, `data:image/png;base64,...` |
95
+ | `ActivityAction` | `enum` | Android's own Settings-provider action constants |
96
+ | `ResultCode` | `enum` | `Success = -1`, `Canceled = 0`, `FirstUser = 1` |
97
+
98
+ ## Notes
99
+
100
+ - **`startActivityAsync` resolves when the user comes back.** The result code says whether they
101
+ finished or cancelled; do not assume the setting changed.
102
+ - **`extra`'s type is `Record<string, unknown>`**, not upstream's `Record<string, any>`, this
103
+ repo bans `any` in application code. The field is forwarded verbatim to the native module, so
104
+ narrowing it further would need a schema this package doesn't have a use for yet.
105
+
106
+ ## Common questions
107
+
108
+ - **`ActivityNotFoundException`.** No app handles the intent; wrap the call in `try`/`catch`.
109
+ - **`packageName` without `className`.** The intent is restricted to that package and rejects if it
110
+ cannot handle it.
111
+ - **Crash returning from notification settings.** Reported with `APP_NOTIFICATION_SETTINGS` plus an `extra`.
112
+ - **`ERR_UNAVAILABLE`.** Reported with `enableDangerousExperimentalLeanBuilds`.
113
+
114
+ Sources: [expo/expo#12078](https://github.com/expo/expo/pull/12078),
115
+ [expo/expo#50511](https://github.com/expo/expo/pull/50511),
116
+ [expo/expo#22995](https://github.com/expo/expo/issues/22995).
117
+
118
+ ## Test it
119
+
120
+ ```bash
121
+ pnpm vitest run packages/intent-launcher
122
+ ```
123
+
124
+ The core tests fake the native module in place of `requireNativeModule`'s runtime resolution,
125
+ `ExpoIntentLauncher` only exists on a real Android device, so a headless run would otherwise
126
+ throw at import. Upstream ships no test suite of its own, so nothing to port, every test here
127
+ is net-new coverage of the ported logic (the guard-clause validation, the three
128
+ `UnavailabilityError` branches).
@@ -0,0 +1 @@
1
+ export * from '../core';
@@ -0,0 +1 @@
1
+ export * from '../core/index.js';
@@ -0,0 +1,2 @@
1
+ export { getApplicationIconAsync, openApplication, startActivityAsync, } from './intent-launcher';
2
+ export { ActivityAction, ResultCode, type IIntentLauncherParams, type IIntentLauncherResult, } from './types';
@@ -0,0 +1,2 @@
1
+ export { getApplicationIconAsync, openApplication, startActivityAsync, } from './intent-launcher.js';
2
+ export { ActivityAction, ResultCode, } from './types.js';
@@ -0,0 +1,8 @@
1
+ import type { IIntentLauncherParams, IIntentLauncherResult } from './types';
2
+ import { ActivityAction } from './types';
3
+ /** Starts the given Android activity, resolving once the user returns to this app */
4
+ export declare function startActivityAsync(activityAction: ActivityAction | string, params?: IIntentLauncherParams): Promise<IIntentLauncherResult>;
5
+ /** Opens another app by its package name, for example `com.google.android.gm` for Gmail */
6
+ export declare function openApplication(packageName: string): void;
7
+ /** Resolves the target app's icon as a base64-encoded PNG data URI */
8
+ export declare function getApplicationIconAsync(packageName: string): Promise<string>;
@@ -0,0 +1,27 @@
1
+ import { UnavailabilityError } from 'expo-modules-core';
2
+ import { expoIntentLauncher } from './native-module';
3
+ import { ActivityAction } from './types.js';
4
+ /** Starts the given Android activity, resolving once the user returns to this app */
5
+ export async function startActivityAsync(activityAction, params = {}) {
6
+ if (!expoIntentLauncher.startActivity) {
7
+ throw new UnavailabilityError('IntentLauncher', 'startActivityAsync');
8
+ }
9
+ if (!activityAction || typeof activityAction !== 'string') {
10
+ throw new TypeError("'activityAction' argument must be a non-empty string!");
11
+ }
12
+ return expoIntentLauncher.startActivity(activityAction, params);
13
+ }
14
+ /** Opens another app by its package name, for example `com.google.android.gm` for Gmail */
15
+ export function openApplication(packageName) {
16
+ if (!expoIntentLauncher.openApplication) {
17
+ throw new UnavailabilityError('IntentLauncher', 'openApplication');
18
+ }
19
+ return expoIntentLauncher.openApplication(packageName);
20
+ }
21
+ /** Resolves the target app's icon as a base64-encoded PNG data URI */
22
+ export async function getApplicationIconAsync(packageName) {
23
+ if (!expoIntentLauncher.getApplicationIcon) {
24
+ throw new UnavailabilityError('IntentLauncher', 'getApplicationIconAsync');
25
+ }
26
+ return expoIntentLauncher.getApplicationIcon(packageName);
27
+ }
@@ -0,0 +1,2 @@
1
+ import type { INativeIntentLauncherModule } from './shared';
2
+ export declare const expoIntentLauncher: INativeIntentLauncherModule;
@@ -0,0 +1,2 @@
1
+ import { requireNativeModule } from 'expo-modules-core';
2
+ export const expoIntentLauncher = requireNativeModule('ExpoIntentLauncher');
@@ -0,0 +1,2 @@
1
+ import type { INativeIntentLauncherModule } from './shared';
2
+ export declare const expoIntentLauncher: Partial<INativeIntentLauncherModule>;
@@ -0,0 +1,3 @@
1
+ // Android-only native module - upstream's own non-android entry is `export default {} as any`,
2
+ // so every function guards a missing method with UnavailabilityError rather than calling this
3
+ export const expoIntentLauncher = {};
@@ -0,0 +1,6 @@
1
+ import type { IIntentLauncherParams, IIntentLauncherResult } from '../types';
2
+ export type INativeIntentLauncherModule = {
3
+ startActivity(activityAction: string, params: IIntentLauncherParams): Promise<IIntentLauncherResult>;
4
+ openApplication(packageName: string): void;
5
+ getApplicationIcon(packageName: string): Promise<string>;
6
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,254 @@
1
+ /** Constants from Android's own Settings provider (`android.provider.Settings`) */
2
+ export declare enum ActivityAction {
3
+ ACCESSIBILITY_COLOR_CONTRAST_SETTINGS = "android.settings.ACCESSIBILITY_COLOR_CONTRAST_SETTINGS",
4
+ ACCESSIBILITY_COLOR_MOTION_SETTINGS = "android.settings.ACCESSIBILITY_COLOR_MOTION_SETTINGS",
5
+ ACCESSIBILITY_COLOR_SPACE_SETTINGS = "com.android.settings.ACCESSIBILITY_COLOR_SPACE_SETTINGS",
6
+ ACCESSIBILITY_DETAILS_SETTINGS = "android.settings.ACCESSIBILITY_DETAILS_SETTINGS",
7
+ ACCESSIBILITY_SETTINGS = "android.settings.ACCESSIBILITY_SETTINGS",
8
+ ACCESSIBILITY_SETTINGS_FOR_SUW = "android.settings.ACCESSIBILITY_SETTINGS_FOR_SUW",
9
+ ACCESSIBILITY_SHORTCUT_SETTINGS = "android.settings.ACCESSIBILITY_SHORTCUT_SETTINGS",
10
+ ACCOUNT_SYNC_SETTINGS = "android.settings.ACCOUNT_SYNC_SETTINGS",
11
+ ADAPTIVE_BRIGHTNESS_SETTINGS = "android.settings.ADAPTIVE_BRIGHTNESS_SETTINGS",
12
+ ADD_ACCOUNT_SETTINGS = "android.settings.ADD_ACCOUNT_SETTINGS",
13
+ ADVANCED_CONNECTED_DEVICE_SETTINGS = "com.android.settings.ADVANCED_CONNECTED_DEVICE_SETTINGS",
14
+ ADVANCED_MEMORY_PROTECTION_SETTINGS = "android.settings.ADVANCED_MEMORY_PROTECTION_SETTINGS",
15
+ AIRPLANE_MODE_SETTINGS = "android.settings.AIRPLANE_MODE_SETTINGS",
16
+ ALL_APPS_NOTIFICATION_SETTINGS = "android.settings.ALL_APPS_NOTIFICATION_SETTINGS",
17
+ ALL_APPS_NOTIFICATION_SETTINGS_FOR_REVIEW = "android.settings.ALL_APPS_NOTIFICATION_SETTINGS_FOR_REVIEW",
18
+ APN_SETTINGS = "android.settings.APN_SETTINGS",
19
+ APP_LOCALE_SETTINGS = "android.settings.APP_LOCALE_SETTINGS",
20
+ APP_MEMORY_USAGE = "android.settings.APP_MEMORY_USAGE",
21
+ APP_NOTIFICATION_BUBBLE_SETTINGS = "android.settings.APP_NOTIFICATION_BUBBLE_SETTINGS",
22
+ APP_NOTIFICATION_REDACTION = "android.settings.ACTION_APP_NOTIFICATION_REDACTION",
23
+ APP_NOTIFICATION_SETTINGS = "android.settings.APP_NOTIFICATION_SETTINGS",
24
+ APP_OPEN_BY_DEFAULT_SETTINGS = "android.settings.APP_OPEN_BY_DEFAULT_SETTINGS",
25
+ APP_STORAGE_SETTINGS = "com.android.settings.APP_STORAGE_SETTINGS",
26
+ APPLICATION_DETAILS_SETTINGS = "android.settings.APPLICATION_DETAILS_SETTINGS",
27
+ APPLICATION_DEVELOPMENT_SETTINGS = "android.settings.APPLICATION_DEVELOPMENT_SETTINGS",
28
+ APPLICATION_SETTINGS = "android.settings.APPLICATION_SETTINGS",
29
+ AUDIO_STREAM_DIALOG = "android.settings.AUDIO_STREAM_DIALOG",
30
+ AUTO_ROTATE_SETTINGS = "android.settings.AUTO_ROTATE_SETTINGS",
31
+ AUTOMATIC_ZEN_RULE_SETTINGS = "android.settings.AUTOMATIC_ZEN_RULE_SETTINGS",
32
+ BACKUP_SETTINGS = "com.android.settings.BACKUP_SETTINGS",
33
+ BATTERY_POWER_USAGE_ADVANCED = "com.android.settings.battery.action.POWER_USAGE_ADVANCED",
34
+ BATTERY_SAVER_SCHEDULE_SETTINGS = "com.android.settings.BATTERY_SAVER_SCHEDULE_SETTINGS",
35
+ BATTERY_SAVER_SETTINGS = "android.settings.BATTERY_SAVER_SETTINGS",
36
+ BIOMETRIC_ENROLL = "android.settings.BIOMETRIC_ENROLL",
37
+ BIOMETRIC_SETTINGS_PROVIDER = "com.android.settings.biometrics.BIOMETRIC_SETTINGS_PROVIDER",
38
+ BLUETOOTH_AUDIO_SHARING_SETTINGS = "com.android.settings.BLUETOOTH_AUDIO_SHARING_SETTINGS",
39
+ BLUETOOTH_DASHBOARD_SETTINGS = "android.settings.BLUETOOTH_DASHBOARD_SETTINGS",
40
+ BLUETOOTH_DEVICE_DETAIL_SETTINGS = "com.android.settings.BLUETOOTH_DEVICE_DETAIL_SETTINGS",
41
+ BLUETOOTH_LE_AUDIO_QR_CODE_SCANNER = "android.settings.BLUETOOTH_LE_AUDIO_QR_CODE_SCANNER",
42
+ BLUETOOTH_PAIRING_SETTINGS = "android.settings.BLUETOOTH_PAIRING_SETTINGS",
43
+ BLUETOOTH_SETTINGS = "android.settings.BLUETOOTH_SETTINGS",
44
+ BLUTOOTH_FIND_BROADCASTS_ACTIVITY = "android.settings.BLUTOOTH_FIND_BROADCASTS_ACTIVITY",
45
+ BUGREPORT_HANDLER_SETTINGS = "android.settings.BUGREPORT_HANDLER_SETTINGS",
46
+ BUTTON_NAVIGATION_SETTINGS = "com.android.settings.BUTTON_NAVIGATION_SETTINGS",
47
+ CAPTIONING_SETTINGS = "android.settings.CAPTIONING_SETTINGS",
48
+ CAST_SETTINGS = "android.settings.CAST_SETTINGS",
49
+ CELLULAR_NETWORK_SECURITY = "android.settings.CELLULAR_NETWORK_SECURITY",
50
+ CHANNEL_NOTIFICATION_SETTINGS = "android.settings.CHANNEL_NOTIFICATION_SETTINGS",
51
+ COLOR_INVERSION_SETTINGS = "android.settings.COLOR_INVERSION_SETTINGS",
52
+ COMBINED_BIOMETRICS_SETTINGS = "android.settings.COMBINED_BIOMETRICS_SETTINGS",
53
+ COMMUNAL_SETTINGS = "android.settings.COMMUNAL_SETTINGS",
54
+ CONDITION_PROVIDER_SETTINGS = "android.settings.ACTION_CONDITION_PROVIDER_SETTINGS",
55
+ CONVERSATION_SETTINGS = "android.settings.CONVERSATION_SETTINGS",
56
+ CREDENTIAL_PROVIDER = "android.settings.CREDENTIAL_PROVIDER",
57
+ DARK_THEME_SETTINGS = "android.settings.DARK_THEME_SETTINGS",
58
+ DATA_ROAMING_SETTINGS = "android.settings.DATA_ROAMING_SETTINGS",
59
+ DATA_SAVER_SETTINGS = "android.settings.DATA_SAVER_SETTINGS",
60
+ DATA_USAGE_SETTINGS = "android.settings.DATA_USAGE_SETTINGS",
61
+ DATE_SETTINGS = "android.settings.DATE_SETTINGS",
62
+ DEVELOPMENT_START_DSU_LOADER = "android.settings.development.START_DSU_LOADER",
63
+ DEVICE_INFO_SETTINGS = "android.settings.DEVICE_INFO_SETTINGS",
64
+ DEVICE_NAME = "android.settings.DEVICE_NAME",
65
+ DISPLAY_SETTINGS = "android.settings.DISPLAY_SETTINGS",
66
+ DREAM_SETTINGS = "android.settings.DREAM_SETTINGS",
67
+ ENTERPRISE_PRIVACY_SETTINGS = "android.settings.ENTERPRISE_PRIVACY_SETTINGS",
68
+ FACE_ENROLL = "android.settings.FACE_ENROLL",
69
+ FACE_SETTINGS = "android.settings.FACE_SETTINGS",
70
+ FACTORY_RESET = "com.android.settings.action.FACTORY_RESET",
71
+ FINGERPRINT_ENROLL = "android.settings.FINGERPRINT_ENROLL",
72
+ FINGERPRINT_SETTINGS = "android.settings.FINGERPRINT_SETTINGS",
73
+ FINGERPRINT_SETTINGS_V2 = "android.settings.FINGERPRINT_SETTINGS_V2",
74
+ FINGERPRINT_SETUP = "android.settings.FINGERPRINT_SETUP",
75
+ FIRST_DAY_OF_WEEK_SETTINGS = "android.settings.FIRST_DAY_OF_WEEK_SETTINGS",
76
+ GESTURE_NAVIGATION_SETTINGS = "com.android.settings.GESTURE_NAVIGATION_SETTINGS",
77
+ HARD_KEYBOARD_LAYOUT_PICKER_SETTINGS = "android.settings.HARD_KEYBOARD_LAYOUT_PICKER_SETTINGS",
78
+ HARD_KEYBOARD_SETTINGS = "android.settings.HARD_KEYBOARD_SETTINGS",
79
+ HEARING_DEVICES_PAIRING_SETTINGS = "android.settings.HEARING_DEVICES_PAIRING_SETTINGS",
80
+ HEARING_DEVICES_SETTINGS = "android.settings.HEARING_DEVICES_SETTINGS",
81
+ HOME_SETTINGS = "android.settings.HOME_SETTINGS",
82
+ IA_SETTINGS = "com.android.settings.action.IA_SETTINGS",
83
+ IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS = "android.settings.IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS",
84
+ IGNORE_BATTERY_OPTIMIZATION_SETTINGS = "android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS",
85
+ INPUT_METHOD_SETTINGS = "android.settings.INPUT_METHOD_SETTINGS",
86
+ INPUT_METHOD_SUBTYPE_SETTINGS = "android.settings.INPUT_METHOD_SUBTYPE_SETTINGS",
87
+ INTERNAL_STORAGE_SETTINGS = "android.settings.INTERNAL_STORAGE_SETTINGS",
88
+ LANGUAGE_SETTINGS = "android.settings.LANGUAGE_SETTINGS",
89
+ LICENSE = "android.settings.LICENSE",
90
+ LOCALE_SETTINGS = "android.settings.LOCALE_SETTINGS",
91
+ LOCATION_SCANNING_SETTINGS = "android.settings.LOCATION_SCANNING_SETTINGS",
92
+ LOCATION_SOURCE_SETTINGS = "android.settings.LOCATION_SOURCE_SETTINGS",
93
+ LOCK_SCREEN_SETTINGS = "android.settings.LOCK_SCREEN_SETTINGS",
94
+ MANAGE_ADAPTIVE_NOTIFICATIONS = "android.settings.MANAGE_ADAPTIVE_NOTIFICATIONS",
95
+ MANAGE_ALL_APPLICATIONS_SETTINGS = "android.settings.MANAGE_ALL_APPLICATIONS_SETTINGS",
96
+ MANAGE_ALL_FILES_ACCESS_PERMISSION = "android.settings.MANAGE_ALL_FILES_ACCESS_PERMISSION",
97
+ MANAGE_ALL_SIM_PROFILES_SETTINGS = "android.settings.MANAGE_ALL_SIM_PROFILES_SETTINGS",
98
+ MANAGE_APP_ALL_FILES_ACCESS_PERMISSION = "android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION",
99
+ MANAGE_APP_LONG_RUNNING_JOBS = "android.settings.MANAGE_APP_LONG_RUNNING_JOBS",
100
+ MANAGE_APP_OVERLAY_PERMISSION = "android.settings.MANAGE_APP_OVERLAY_PERMISSION",
101
+ MANAGE_APP_USE_FULL_SCREEN_INTENT = "android.settings.MANAGE_APP_USE_FULL_SCREEN_INTENT",
102
+ MANAGE_APPLICATIONS_SETTINGS = "android.settings.MANAGE_APPLICATIONS_SETTINGS",
103
+ MANAGE_CLONED_APPS_SETTINGS = "android.settings.MANAGE_CLONED_APPS_SETTINGS",
104
+ MANAGE_CROSS_PROFILE_ACCESS = "android.settings.MANAGE_CROSS_PROFILE_ACCESS",
105
+ MANAGE_DEFAULT_APPS_SETTINGS = "android.settings.MANAGE_DEFAULT_APPS_SETTINGS",
106
+ MANAGE_DOMAIN_URLS = "android.settings.MANAGE_DOMAIN_URLS",
107
+ MANAGE_OVERLAY_PERMISSION = "android.settings.action.MANAGE_OVERLAY_PERMISSION",
108
+ MANAGE_UNKNOWN_APP_SOURCES = "android.settings.MANAGE_UNKNOWN_APP_SOURCES",
109
+ MANAGE_USER_ASPECT_RATIO_SETTINGS = "android.settings.MANAGE_USER_ASPECT_RATIO_SETTINGS",
110
+ MANAGE_WRITE_SETTINGS = "android.settings.action.MANAGE_WRITE_SETTINGS",
111
+ MANAGED_PROFILE_SETTINGS = "android.settings.MANAGED_PROFILE_SETTINGS",
112
+ MEDIA_BROADCAST_DIALOG = "android.settings.MEDIA_BROADCAST_DIALOG",
113
+ MEDIA_CONTROLS_SETTINGS = "android.settings.ACTION_MEDIA_CONTROLS_SETTINGS",
114
+ MEMORY_CARD_SETTINGS = "android.settings.MEMORY_CARD_SETTINGS",
115
+ MMS_MESSAGE_SETTING = "android.settings.MMS_MESSAGE_SETTING",
116
+ MOBILE_DATA_USAGE = "android.settings.MOBILE_DATA_USAGE",
117
+ MOBILE_NETWORK_LIST = "android.settings.MOBILE_NETWORK_LIST",
118
+ MODULE_LICENSES = "android.settings.MODULE_LICENSES",
119
+ MONITORING_CERT_INFO = "com.android.settings.MONITORING_CERT_INFO",
120
+ MORE_SECURITY_PRIVACY_SETTINGS = "com.android.settings.MORE_SECURITY_PRIVACY_SETTINGS",
121
+ NAVIGATION_MODE_SETTINGS = "com.android.settings.NAVIGATION_MODE_SETTINGS",
122
+ NETWORK_OPERATOR_SETTINGS = "android.settings.NETWORK_OPERATOR_SETTINGS",
123
+ NETWORK_PROVIDER_SETTINGS = "android.settings.NETWORK_PROVIDER_SETTINGS",
124
+ NFC_SETTINGS = "android.settings.NFC_SETTINGS",
125
+ NIGHT_DISPLAY_SETTINGS = "android.settings.NIGHT_DISPLAY_SETTINGS",
126
+ NOTIFICATION_ASSISTANT_SETTINGS = "android.settings.NOTIFICATION_ASSISTANT_SETTINGS",
127
+ NOTIFICATION_HISTORY = "android.settings.NOTIFICATION_HISTORY",
128
+ NOTIFICATION_LISTENER_DETAIL_SETTINGS = "android.settings.NOTIFICATION_LISTENER_DETAIL_SETTINGS",
129
+ NOTIFICATION_LISTENER_SETTINGS = "android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS",
130
+ NOTIFICATION_POLICY_ACCESS_DETAIL_SETTINGS = "android.settings.NOTIFICATION_POLICY_ACCESS_DETAIL_SETTINGS",
131
+ NOTIFICATION_POLICY_ACCESS_SETTINGS = "android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS",
132
+ NOTIFICATION_SETTINGS = "android.settings.NOTIFICATION_SETTINGS",
133
+ ONE_HANDED_SETTINGS = "android.settings.action.ONE_HANDED_SETTINGS",
134
+ OPEN_PRIVATE_SPACE_SETTINGS = "com.android.settings.action.OPEN_PRIVATE_SPACE_SETTINGS",
135
+ OTHER_SOUND_SETTINGS = "android.settings.ACTION_OTHER_SOUND_SETTINGS",
136
+ PANEL_INTERNET_CONNECTIVITY = "android.settings.panel.action.INTERNET_CONNECTIVITY",
137
+ PANEL_NFC = "android.settings.panel.action.NFC",
138
+ PANEL_VOLUME = "android.settings.panel.action.VOLUME",
139
+ PANEL_WIFI = "android.settings.panel.action.WIFI",
140
+ PICTURE_IN_PICTURE_SETTINGS = "android.settings.PICTURE_IN_PICTURE_SETTINGS",
141
+ POWER_MENU_SETTINGS = "android.settings.ACTION_POWER_MENU_SETTINGS",
142
+ PREMIUM_SMS_SETTINGS = "android.settings.PREMIUM_SMS_SETTINGS",
143
+ PREVIOUSLY_CONNECTED_DEVICE = "com.android.settings.PREVIOUSLY_CONNECTED_DEVICE",
144
+ PRINT_SETTINGS = "android.settings.ACTION_PRINT_SETTINGS",
145
+ PRIVACY_ADVANCED_SETTINGS = "android.settings.PRIVACY_ADVANCED_SETTINGS",
146
+ PRIVACY_CONTROLS = "android.settings.PRIVACY_CONTROLS",
147
+ PRIVACY_SETTINGS = "android.settings.PRIVACY_SETTINGS",
148
+ PROCESS_WIFI_EASY_CONNECT_URI = "android.settings.PROCESS_WIFI_EASY_CONNECT_URI",
149
+ REDUCE_BRIGHT_COLORS_SETTINGS = "android.settings.REDUCE_BRIGHT_COLORS_SETTINGS",
150
+ REGIONAL_PREFERENCES_SETTINGS = "android.settings.REGIONAL_PREFERENCES_SETTINGS",
151
+ REMOTE_AUTHENTICATOR_ENROLL = "android.settings.REMOTE_AUTHENTICATOR_ENROLL",
152
+ REQUEST_ENABLE_CONTENT_CAPTURE = "android.settings.REQUEST_ENABLE_CONTENT_CAPTURE",
153
+ REQUEST_IGNORE_BATTERY_OPTIMIZATIONS = "android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS",
154
+ REQUEST_MANAGE_MEDIA = "android.settings.REQUEST_MANAGE_MEDIA",
155
+ REQUEST_MEDIA_ROUTING_CONTROL = "android.settings.REQUEST_MEDIA_ROUTING_CONTROL",
156
+ REQUEST_SCHEDULE_EXACT_ALARM = "android.settings.REQUEST_SCHEDULE_EXACT_ALARM",
157
+ REQUEST_SET_AUTOFILL_SERVICE = "android.settings.REQUEST_SET_AUTOFILL_SERVICE",
158
+ SATELLITE_SETTING = "android.settings.SATELLITE_SETTING",
159
+ SCREEN_TIMEOUT_SETTINGS = "android.settings.SCREEN_TIMEOUT_SETTINGS",
160
+ SEARCH_RESULT_TRAMPOLINE = "com.android.settings.SEARCH_RESULT_TRAMPOLINE",
161
+ SECURITY_ADVANCED_SETTINGS = "com.android.settings.security.SECURITY_ADVANCED_SETTINGS",
162
+ SECURITY_SETTINGS = "android.settings.SECURITY_SETTINGS",
163
+ SETTINGS = "android.settings.SETTINGS",
164
+ SETTINGS_EMBED_DEEP_LINK_ACTIVITY = "android.settings.SETTINGS_EMBED_DEEP_LINK_ACTIVITY",
165
+ SETUP_LOCK_SCREEN = "com.android.settings.SETUP_LOCK_SCREEN",
166
+ SHOW_ADMIN_SUPPORT_DETAILS = "android.settings.SHOW_ADMIN_SUPPORT_DETAILS",
167
+ SHOW_MANUAL = "android.settings.SHOW_MANUAL",
168
+ SHOW_REGULATORY_INFO = "android.settings.SHOW_REGULATORY_INFO",
169
+ SHOW_REMOTE_BUGREPORT_DIALOG = "android.settings.SHOW_REMOTE_BUGREPORT_DIALOG",
170
+ SHOW_RESTRICTED_SETTING_DIALOG = "android.settings.SHOW_RESTRICTED_SETTING_DIALOG",
171
+ SIM_PREFERENCE_SETTINGS = "android.settings.SIM_PREFERENCE_SETTINGS",
172
+ SIM_SUB_INFO_SETTINGS = "com.android.settings.sim.SIM_SUB_INFO_SETTINGS",
173
+ SOUND_SETTINGS = "android.settings.SOUND_SETTINGS",
174
+ SPA_SEARCH_LANDING = "android.settings.SPA_SEARCH_LANDING",
175
+ STORAGE_MANAGER_SETTINGS = "android.settings.STORAGE_MANAGER_SETTINGS",
176
+ STYLUS_USI_DETAILS_SETTINGS = "com.android.settings.STYLUS_USI_DETAILS_SETTINGS",
177
+ SUGGESTION_STATE_PROVIDER = "com.android.settings.action.SUGGESTION_STATE_PROVIDER",
178
+ SUPPORT_SETTINGS = "com.android.settings.action.SUPPORT_SETTINGS",
179
+ SYNC_SETTINGS = "android.settings.SYNC_SETTINGS",
180
+ TEMPERATURE_UNIT_SETTINGS = "android.settings.TEMPERATURE_UNIT_SETTINGS",
181
+ TETHER_PROVISIONING_UI = "android.settings.TETHER_PROVISIONING_UI",
182
+ TETHER_SETTINGS = "android.settings.TETHER_SETTINGS",
183
+ TETHER_UNSUPPORTED_CARRIER_UI = "android.settings.TETHER_UNSUPPORTED_CARRIER_UI",
184
+ TEXT_READING_SETTINGS = "android.settings.TEXT_READING_SETTINGS",
185
+ TRUSTED_CREDENTIALS = "com.android.settings.TRUSTED_CREDENTIALS",
186
+ TRUSTED_CREDENTIALS_USER = "com.android.settings.TRUSTED_CREDENTIALS_USER",
187
+ TTS_SETTINGS = "com.android.settings.TTS_SETTINGS",
188
+ TURN_SCREEN_ON_SETTINGS = "android.settings.TURN_SCREEN_ON_SETTINGS",
189
+ USAGE_ACCESS_SETTINGS = "android.settings.USAGE_ACCESS_SETTINGS",
190
+ USER_DICTIONARY_INSERT = "android.settings.USER_DICTIONARY_INSERT",
191
+ USER_DICTIONARY_SETTINGS = "android.settings.USER_DICTIONARY_SETTINGS",
192
+ USER_SETTINGS = "android.settings.USER_SETTINGS",
193
+ VIEW_ADVANCED_POWER_USAGE_DETAIL = "android.settings.VIEW_ADVANCED_POWER_USAGE_DETAIL",
194
+ VOICE_CONTROL_AIRPLANE_MODE = "android.settings.VOICE_CONTROL_AIRPLANE_MODE",
195
+ VOICE_CONTROL_BATTERY_SAVER_MODE = "android.settings.VOICE_CONTROL_BATTERY_SAVER_MODE",
196
+ VOICE_CONTROL_DO_NOT_DISTURB_MODE = "android.settings.VOICE_CONTROL_DO_NOT_DISTURB_MODE",
197
+ VOICE_INPUT_SETTINGS = "android.settings.VOICE_INPUT_SETTINGS",
198
+ VPN_SETTINGS = "android.settings.VPN_SETTINGS",
199
+ VR_LISTENER_SETTINGS = "android.settings.VR_LISTENER_SETTINGS",
200
+ WALLPAPER_SETTINGS = "android.settings.WALLPAPER_SETTINGS",
201
+ WEBVIEW_SETTINGS = "android.settings.WEBVIEW_SETTINGS",
202
+ WIFI_ADD_NETWORKS = "android.settings.WIFI_ADD_NETWORKS",
203
+ WIFI_CALLING_SETTINGS = "android.settings.WIFI_CALLING_SETTINGS",
204
+ WIFI_DETAILS_SETTINGS = "android.settings.WIFI_DETAILS_SETTINGS",
205
+ WIFI_DIALOG = "com.android.settings.WIFI_DIALOG",
206
+ WIFI_DPP_CONFIGURATOR_AUTH_QR_CODE_GENERATOR = "android.settings.WIFI_DPP_CONFIGURATOR_AUTH_QR_CODE_GENERATOR",
207
+ WIFI_DPP_CONFIGURATOR_QR_CODE_GENERATOR = "android.settings.WIFI_DPP_CONFIGURATOR_QR_CODE_GENERATOR",
208
+ WIFI_DPP_CONFIGURATOR_QR_CODE_SCANNER = "android.settings.WIFI_DPP_CONFIGURATOR_QR_CODE_SCANNER",
209
+ WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = "android.settings.WIFI_DPP_ENROLLEE_QR_CODE_SCANNER",
210
+ WIFI_IP_SETTINGS = "android.settings.WIFI_IP_SETTINGS",
211
+ WIFI_NETWORK_REQUEST = "com.android.settings.wifi.action.NETWORK_REQUEST",
212
+ WIFI_SAVED_NETWORK_SETTINGS = "android.settings.WIFI_SAVED_NETWORK_SETTINGS",
213
+ WIFI_SCANNING_SETTINGS = "android.settings.WIFI_SCANNING_SETTINGS",
214
+ WIFI_SETTINGS = "android.settings.WIFI_SETTINGS",
215
+ WIFI_TETHER_SETTINGS = "com.android.settings.WIFI_TETHER_SETTINGS",
216
+ WIRELESS_SETTINGS = "android.settings.WIRELESS_SETTINGS",
217
+ ZEN_MODE_AUTOMATION_SETTINGS = "android.settings.ZEN_MODE_AUTOMATION_SETTINGS",
218
+ ZEN_MODE_EVENT_RULE_SETTINGS = "android.settings.ZEN_MODE_EVENT_RULE_SETTINGS",
219
+ ZEN_MODE_PRIORITY_SETTINGS = "android.settings.ZEN_MODE_PRIORITY_SETTINGS",
220
+ ZEN_MODE_SCHEDULE_RULE_SETTINGS = "android.settings.ZEN_MODE_SCHEDULE_RULE_SETTINGS",
221
+ ZEN_MODE_SETTINGS = "android.settings.ZEN_MODE_SETTINGS"
222
+ }
223
+ export type IIntentLauncherParams = {
224
+ /** MIME type of the data represented by `data`; omit to let Android infer it */
225
+ type?: string;
226
+ /** More detail about the action the intent performs (`Intent.addCategory`) */
227
+ category?: string;
228
+ /** Extra key-value pairs passed with the intent; keys need a package prefix */
229
+ extra?: Record<string, unknown>;
230
+ /** URI the intent should operate upon (Android requires a lowercase scheme) */
231
+ data?: string;
232
+ /** Bitmask of flags, see `Intent.setFlags` */
233
+ flags?: number;
234
+ /** Package name identifying the ComponentName to explicitly handle the intent */
235
+ packageName?: string;
236
+ /** Class name of the ComponentName */
237
+ className?: string;
238
+ };
239
+ export type IIntentLauncherResult = {
240
+ /** Result code returned by the activity */
241
+ resultCode: ResultCode;
242
+ /** Optional data URI returned by the activity */
243
+ data?: string;
244
+ /** Optional extras object returned by the activity */
245
+ extra?: object;
246
+ };
247
+ export declare enum ResultCode {
248
+ /** The activity operation succeeded */
249
+ Success = -1,
250
+ /** The activity was canceled, for example by tapping the back button */
251
+ Canceled = 0,
252
+ /** First custom, user-defined value that can be returned by the activity */
253
+ FirstUser = 1
254
+ }