{"_id":"@capawesome/capacitor-sim","_rev":"4-d1402d61e1ab1f4cfd704be3a3d4f4fc","name":"@capawesome/capacitor-sim","dist-tags":{"latest":"0.1.2"},"versions":{"0.0.1":{"name":"@capawesome/capacitor-sim","version":"0.0.1","keywords":["capacitor","plugin","native"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-sim@0.0.1","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/plugins/sim/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"2745222d6b8117aecca63feba4edce5e534f45e8","tarball":"https://registry.npmjs.org/@capawesome/capacitor-sim/-/capacitor-sim-0.0.1.tgz","fileCount":31,"integrity":"sha512-3AzF9zRe8VO+pPD3lw6dcB+nLyfHBaDbPwS7gkkfheJqrlpb9ebUmhNZLhlb9nBte/oo7D/tjLIwVb7CQtOY4A==","signatures":[{"sig":"MEUCIQDIsRgB3mEThDa3BT6/EO4P7iFIOHI1xM+AaKIu4+bWpwIgRNFlacGH2RSZYqHKTDYI1qlh1KhLRDQa60drOTKfRtQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48124},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"8dd31ce5d3f16f94fb71d033f47512e99908f4e4","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SimPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"robingenz","email":"mail@robingenz.dev"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.13.0","description":"Capacitor plugin for reading SIM card and carrier information.","directories":{},"_nodeVersion":"24.16.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-sim_0.0.1_1783405336334_0.5588823505096023","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@capawesome/capacitor-sim","version":"0.1.0","keywords":["capacitor","plugin","native","capacitor-plugin","sim","sim card","esim","carrier","carrier information","dual sim","mcc","mnc"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-sim@0.1.0","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/sim/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"9c6ac95d32f14383f69d2e5eeadd8f213463489a","tarball":"https://registry.npmjs.org/@capawesome/capacitor-sim/-/capacitor-sim-0.1.0.tgz","fileCount":31,"integrity":"sha512-OeHmiRmTuTXYGoqAEzqBqipuvLhwg4ILh8smvVK5OJ9NLXK4L11S2cjSVsBJH+7eGHrZs+dCwm6+ouhWK86E6A==","signatures":[{"sig":"MEUCIQC5r/wizL2dBR8g2TsSRAvrJmp4X/LeM1Ew7Ln2STJZcQIgJk0Qql749oLCssnMIl3vV4Wcj8xf991KPCk4tB2qS0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-sim@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52575},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"1ce17b1fd14c43b2f1d5d3c2da82221e1d1dca37","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SimPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ff9d284a-29e1-4a87-b0d1-2044f855140e"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.16.0","description":"Capacitor plugin for reading SIM card and carrier information on Android.","directories":{},"_nodeVersion":"24.18.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-sim_0.1.0_1784015606087_0.7898968913961559","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@capawesome/capacitor-sim","version":"0.1.1","keywords":["capacitor","plugin","native","capacitor-plugin","sim","sim card","esim","carrier","carrier information","dual sim","mcc","mnc"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-sim@0.1.1","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/sim/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"9a2bdd6ed2aa3f2fc546995c5849f871551beb86","tarball":"https://registry.npmjs.org/@capawesome/capacitor-sim/-/capacitor-sim-0.1.1.tgz","fileCount":31,"integrity":"sha512-3LcVGsnr0zF13W0ks+CUrVD7TEgRlWnc4YsmeNA4jvU4LBZTKM5okLfR43NTgz/BicZBoK3wEKOUbGI3hV4+hw==","signatures":[{"sig":"MEYCIQCzXOgr0RtMZUG2dehhO/MNP8NeTZB3xe9NAILt4P2vEQIhAMNYYfEOOlcKXpmgcaOcVurCNFExO10AZTx2V5vwoZxg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-sim@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52584},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"3e61f4b412f9f3f512c21169bb135bbb23a67e6d","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SimPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ff9d284a-29e1-4a87-b0d1-2044f855140e"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.16.0","description":"Capacitor plugin for reading SIM card and carrier information on Android.","directories":{},"_nodeVersion":"24.18.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-sim_0.1.1_1784103059835_0.8785293684369344","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@capawesome/capacitor-sim","version":"0.1.2","description":"Capacitor plugin for reading SIM card and carrier information on Android.","main":"dist/plugin.cjs.js","module":"dist/esm/index.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/capawesome-team/capacitor-plugins.git"},"bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"funding":[{"type":"github","url":"https://github.com/sponsors/capawesome-team/"},{"type":"opencollective","url":"https://opencollective.com/capawesome"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/sim/","keywords":["capacitor","plugin","native","capacitor-plugin","sim","sim card","esim","carrier","carrier information","dual sim","mcc","mnc"],"scripts":{"verify":"npm run verify:ios && npm run verify:android && npm run verify:web","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:android":"cd android && ./gradlew clean build test && cd ..","verify:web":"npm run build","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","eslint":"eslint . --ext ts","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","docgen":"docgen --api SimPlugin --output-readme README.md --output-json dist/docs.json","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd ..","prepublishOnly":"npm run build"},"devDependencies":{"@capacitor/android":"8.0.0","@capacitor/cli":"8.4.2","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/ios":"8.0.0","@ionic/eslint-config":"0.4.0","eslint":"8.57.0","prettier-plugin-java":"2.9.7","rimraf":"6.1.2","rollup":"4.62.3","swiftlint":"2.0.0","typescript":"5.9.3"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"publishConfig":{"access":"public"},"gitHead":"7c1937ed10b7de86ca2c1cdc3539a2735fd69a00","_id":"@capawesome/capacitor-sim@0.1.2","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-3RXyTfZuix4U39T3I+3JldpxSCOQjJHcliYAJ3/Q7qAsPemH57UwLeoZNhYk+xJQw7CLcLl2dHyvb829Wy4wOg==","shasum":"ba6d6f4c16c5942fb0000207fae384e896c444fc","tarball":"https://registry.npmjs.org/@capawesome/capacitor-sim/-/capacitor-sim-0.1.2.tgz","fileCount":31,"unpackedSize":52712,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-sim@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCfu5k38wGLijo1N8/j5wPgHNsiyE3F9TShZA29Z6TpKwIgU04BkN79mQaiQKkMKxVY9zlJ+siFcWAZ9MF9/oyTVJg="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ff9d284a-29e1-4a87-b0d1-2044f855140e"}},"directories":{},"maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/capacitor-sim_0.1.2_1788337417599_0.17081576580226665"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-07T06:22:16.122Z","modified":"2026-09-02T08:23:38.176Z","0.0.1":"2026-07-07T06:22:16.490Z","0.1.0":"2026-07-14T07:53:26.274Z","0.1.1":"2026-07-15T08:10:59.974Z","0.1.2":"2026-09-02T08:23:37.754Z"},"bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","homepage":"https://capawesome.io/docs/sdks/capacitor/sim/","keywords":["capacitor","plugin","native","capacitor-plugin","sim","sim card","esim","carrier","carrier information","dual sim","mcc","mnc"],"repository":{"type":"git","url":"git+https://github.com/capawesome-team/capacitor-plugins.git"},"description":"Capacitor plugin for reading SIM card and carrier information on Android.","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"readme":"# Capacitor SIM Plugin\n\nCapacitor plugin for reading SIM card and carrier information.\n\n<div class=\"capawesome-z29o10a\">\n  <a href=\"https://cloud.capawesome.io/\" target=\"_blank\">\n    <img alt=\"Deliver Live Updates to your Capacitor app with Capawesome Cloud\" src=\"https://cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png?t=1\" />\n  </a>\n</div>\n\n## Features\n\n- 📇 **SIM cards**: Read information about the SIM cards installed on the device.\n- 🔀 **Multi-SIM**: Supports devices with multiple SIM slots.\n- 🌐 **Carrier details**: Read carrier name, country code, MCC and MNC.\n- 🔒 **Permissions**: Built-in handling of the required runtime permission.\n- 🤝 **Compatibility**: Works alongside the [Device Info](https://capawesome.io/docs/sdks/capacitor/device-info/), [Network](https://capawesome.io/docs/sdks/capacitor/network/) and [Phone Dialer](https://capawesome.io/docs/sdks/capacitor/phone-dialer/) plugins.\n- 🔁 **Up-to-date**: Always supports the latest Capacitor version.\n\nMissing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look!\n\n## Use Cases\n\nThe SIM plugin is typically used when an app needs to know about the device's SIM cards or carrier, for example:\n\n- **Carrier-specific features**: Enable or disable functionality depending on the carrier name or the MCC and MNC of the SIM card.\n- **Country detection**: Use the SIM card's ISO country code to preselect a country or region in your app.\n- **Multi-SIM handling**: Show which SIM slots are in use on devices with multiple SIM slots.\n- **eSIM detection**: Detect whether a SIM card is an embedded SIM (eSIM).\n\n## Compatibility\n\n| Plugin Version | Capacitor Version | Status         |\n| -------------- | ----------------- | -------------- |\n| 0.x.x          | >=8.x.x           | Active support |\n\n## Installation\n\nYou can use our **AI-Assisted Setup** to install the plugin.\nAdd the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:\n\n```bash\nnpx skills add capawesome-team/skills --skill capacitor-plugins\n```\n\nThen use the following prompt:\n\n```\n Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-sim` plugin in my project.\n```\n\nIf you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below:\n\n```bash\nnpm install @capawesome/capacitor-sim\nnpx cap sync\n```\n\nThis plugin is only available on **Android**. On iOS and Web, all methods reject as unimplemented (see [iOS](#ios) below).\n\n### Android\n\nThe `READ_PHONE_STATE` permission is declared in the plugin's `AndroidManifest.xml` and is merged into your app automatically. You must request it at runtime via the `requestPermissions(...)` method before calling `getSimCards(...)`.\n\n### iOS\n\nReading SIM card and carrier information is **not supported** on iOS. Apple deprecated the `CTCarrier` APIs of the Core Telephony framework with iOS 16, and they return placeholder values (e.g. `\"--\"` and `65535`) on iOS 16.4 and later. Because there is no reliable system API left, all methods reject as unimplemented on iOS.\n\n## Configuration\n\nNo configuration required for this plugin.\n\n## Usage\n\nThe following examples show how to check and request permissions and read the SIM cards installed on the device.\n\n### Check and request permissions\n\nReading the SIM cards requires the `READ_PHONE_STATE` runtime permission on Android. Check the current permission state and request the permission before calling `getSimCards(...)`. Only available on Android:\n\n```typescript\nimport { Sim } from '@capawesome/capacitor-sim';\n\nconst checkPermissions = async () => {\n  const { readSimCards } = await Sim.checkPermissions();\n  return readSimCards;\n};\n\nconst requestPermissions = async () => {\n  const { readSimCards } = await Sim.requestPermissions();\n  return readSimCards;\n};\n```\n\n### Read the SIM cards\n\nGet information about the SIM cards installed on the device, such as the carrier name, country code, MCC and MNC. On devices with multiple SIM slots, all active SIM cards are returned. Only available on Android:\n\n```typescript\nimport { Sim } from '@capawesome/capacitor-sim';\n\nconst getSimCards = async () => {\n  const { simCards } = await Sim.getSimCards();\n  return simCards;\n};\n```\n\n## API\n\n<docgen-index>\n\n* [`checkPermissions()`](#checkpermissions)\n* [`getSimCards()`](#getsimcards)\n* [`requestPermissions()`](#requestpermissions)\n* [Interfaces](#interfaces)\n* [Type Aliases](#type-aliases)\n\n</docgen-index>\n\n<docgen-api>\n<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->\n\n### checkPermissions()\n\n```typescript\ncheckPermissions() => Promise<PermissionStatus>\n```\n\nCheck the permission to read the SIM cards.\n\nOnly available on Android.\n\n**Returns:** <code>Promise&lt;<a href=\"#permissionstatus\">PermissionStatus</a>&gt;</code>\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### getSimCards()\n\n```typescript\ngetSimCards() => Promise<GetSimCardsResult>\n```\n\nGet information about the SIM cards installed on the device.\n\nOn devices with multiple SIM slots, all active SIM cards are returned.\n\nOnly available on Android.\n\n**Returns:** <code>Promise&lt;<a href=\"#getsimcardsresult\">GetSimCardsResult</a>&gt;</code>\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### requestPermissions()\n\n```typescript\nrequestPermissions() => Promise<PermissionStatus>\n```\n\nRequest the permission to read the SIM cards.\n\nOnly available on Android.\n\n**Returns:** <code>Promise&lt;<a href=\"#permissionstatus\">PermissionStatus</a>&gt;</code>\n\n**Since:** 0.1.0\n\n--------------------\n\n\n### Interfaces\n\n\n#### PermissionStatus\n\n| Prop               | Type                                                        | Description                                    | Since |\n| ------------------ | ----------------------------------------------------------- | ---------------------------------------------- | ----- |\n| **`readSimCards`** | <code><a href=\"#permissionstate\">PermissionState</a></code> | The permission state of reading the SIM cards. | 0.1.0 |\n\n\n#### GetSimCardsResult\n\n| Prop           | Type                   | Description                            | Since |\n| -------------- | ---------------------- | -------------------------------------- | ----- |\n| **`simCards`** | <code>SimCard[]</code> | The SIM cards installed on the device. | 0.1.0 |\n\n\n#### SimCard\n\n| Prop                    | Type                         | Description                                                                                                                                                                         | Since |\n| ----------------------- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |\n| **`carrierName`**       | <code>string \\| null</code>  | The name of the carrier. Returns `null` if the carrier name is not available.                                                                                                       | 0.1.0 |\n| **`displayName`**       | <code>string \\| null</code>  | The user-editable display name of the SIM card. Returns `null` if the display name is not available.                                                                                | 0.1.0 |\n| **`isEmbedded`**        | <code>boolean \\| null</code> | Whether the SIM card is an embedded SIM (eSIM). Returns `null` if the information is not available.                                                                                 | 0.1.0 |\n| **`isoCountryCode`**    | <code>string \\| null</code>  | The two-letter ISO 3166-1 country code of the carrier. Returns `null` if the country code is not available.                                                                         | 0.1.0 |\n| **`mobileCountryCode`** | <code>string \\| null</code>  | The Mobile Country Code (MCC) of the carrier. Returns `null` if the mobile country code is not available.                                                                           | 0.1.0 |\n| **`mobileNetworkCode`** | <code>string \\| null</code>  | The Mobile Network Code (MNC) of the carrier. Returns `null` if the mobile network code is not available.                                                                           | 0.1.0 |\n| **`phoneNumber`**       | <code>string \\| null</code>  | The phone number associated with the SIM card. This value is often empty because carriers do not reliably store the phone number on the SIM card. In that case, `null` is returned. | 0.1.0 |\n| **`slotIndex`**         | <code>number</code>          | The index of the SIM slot on the device.                                                                                                                                            | 0.1.0 |\n\n\n### Type Aliases\n\n\n#### PermissionState\n\n<code>'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'</code>\n\n</docgen-api>\n\n## FAQ\n\n### How is this plugin different from other similar plugins?\n\nIt reads the full picture of the device's SIM cards in a single call — carrier name, ISO country code, MCC and MNC, eSIM status, and the slot index for every active card on multi-SIM devices — through a fully typed API that handles the required Android runtime permission for you. It's honest about platform reality, too: SIM data is well supported on Android, while iOS no longer exposes it reliably, so the plugin focuses where the information is actually available. If you only need a rough country hint, a lighter approach may be enough; if you need dependable multi-SIM and carrier details, this plugin is built for exactly that.\n\n### Why is the SIM plugin not available on iOS?\n\nApple deprecated the `CTCarrier` APIs of the Core Telephony framework with iOS 16, and they return placeholder values (e.g. `\"--\"` and `65535`) on iOS 16.4 and later. Because there is no reliable system API left for reading SIM card and carrier information, all methods reject as unimplemented on iOS. See the [iOS installation notes](#ios) for details.\n\n### Which permissions are required to read the SIM cards?\n\nThe plugin requires the `READ_PHONE_STATE` permission on Android. It is declared in the plugin's `AndroidManifest.xml` and merged into your app automatically, so no manual manifest changes are needed. However, you must request the permission at runtime via the `requestPermissions` method before calling `getSimCards`.\n\n### Why is the phone number `null`?\n\nThe `phoneNumber` property is often empty because carriers do not reliably store the phone number on the SIM card. In that case, the plugin returns `null`. Other properties such as `carrierName` or `isoCountryCode` may also be `null` if the information is not available.\n\n### Does the plugin support dual-SIM devices?\n\nYes, on devices with multiple SIM slots, the `getSimCards` method returns all active SIM cards. Each SIM card includes a `slotIndex` property that indicates the index of the SIM slot on the device.\n\n### Can I detect whether a SIM card is an eSIM?\n\nYes, each SIM card includes an `isEmbedded` property that indicates whether it is an embedded SIM (eSIM). The property returns `null` if the information is not available.\n\n### Can I use this plugin with Ionic, React, Vue or Angular?\n\nYes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects.\n\n## Related Plugins\n\n- [Device Info](https://capawesome.io/docs/sdks/capacitor/device-info/): Read device information, such as the model, manufacturer, and operating system.\n- [Network](https://capawesome.io/docs/sdks/capacitor/network/): Access network information.\n- [Phone Dialer](https://capawesome.io/docs/sdks/capacitor/phone-dialer/): Open the native phone dialer prefilled with a phone number.\n\n## Newsletter\n\nStay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/).\n\n## Changelog\n\nSee [CHANGELOG.md](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/sim/CHANGELOG.md).\n\n## License\n\nSee [LICENSE](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/sim/LICENSE).\n","readmeFilename":"README.md"}