@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.
- package/LICENSE +21 -0
- package/README.md +127 -2
- package/build/angular/index.d.ts +1 -0
- package/build/angular/index.js +1 -0
- package/build/core/index.d.ts +2 -0
- package/build/core/index.js +2 -0
- package/build/core/intent-launcher.d.ts +8 -0
- package/build/core/intent-launcher.js +27 -0
- package/build/core/native-module/index.android.d.ts +2 -0
- package/build/core/native-module/index.android.js +2 -0
- package/build/core/native-module/index.d.ts +2 -0
- package/build/core/native-module/index.js +3 -0
- package/build/core/native-module/shared.d.ts +6 -0
- package/build/core/native-module/shared.js +1 -0
- package/build/core/types.d.ts +254 -0
- package/build/core/types.js +233 -0
- package/build-ngc/angular/index.d.ts +1 -0
- package/build-ngc/angular/index.js +2 -0
- package/build-ngc/angular/index.js.map +1 -0
- package/build-ngc/core/index.d.ts +2 -0
- package/build-ngc/core/index.js +3 -0
- package/build-ngc/core/index.js.map +1 -0
- package/build-ngc/core/intent-launcher.d.ts +8 -0
- package/build-ngc/core/intent-launcher.js +28 -0
- package/build-ngc/core/intent-launcher.js.map +1 -0
- package/build-ngc/core/native-module/index.android.d.ts +2 -0
- package/build-ngc/core/native-module/index.android.js +3 -0
- package/build-ngc/core/native-module/index.android.js.map +1 -0
- package/build-ngc/core/native-module/index.d.ts +2 -0
- package/build-ngc/core/native-module/index.js +4 -0
- package/build-ngc/core/native-module/index.js.map +1 -0
- package/build-ngc/core/native-module/shared.d.ts +6 -0
- package/build-ngc/core/native-module/shared.js +2 -0
- package/build-ngc/core/native-module/shared.js.map +1 -0
- package/build-ngc/core/types.d.ts +254 -0
- package/build-ngc/core/types.js +234 -0
- package/build-ngc/core/types.js.map +1 -0
- package/native-link.json +12 -0
- package/package.json +147 -3
- package/src/angular/index.ts +1 -0
- package/src/core/index.ts +11 -0
- package/src/core/intent-launcher.ts +38 -0
- package/src/core/native-module/index.android.ts +5 -0
- package/src/core/native-module/index.ts +5 -0
- package/src/core/native-module/shared.ts +10 -0
- 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
|
-
#
|
|
1
|
+
# @symbiote-native/intent-launcher
|
|
2
2
|
|
|
3
|
-
|
|
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,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,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
|
+
}
|