Skip to content

Call requires permission which may be rejected by user #646

Open
@SamuelScheit

Description

@SamuelScheit

Bug report

  • I've checked the example to reproduce the issue.

  • Reproduced on:

  • Android

  • iOS

Description

Building the project with react-native-callkeep fails on android

Steps to Reproduce

Android Manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="app.trant"
	android:exported="true" xmlns:tools="http://schemas.android.com/tools">

	<uses-permission android:name="android.permission.INTERNET" />
	<uses-permission android:name="android.permission.CAMERA" />
	<uses-permission android:name="android.permission.MICROPHONE" />
	<uses-permission android:name="android.permission.RECORD_AUDIO" />
	<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
	<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
	<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
	<uses-permission android:name="android.permission.READ_CONTACTS" />
	<uses-permission android:name="android.permission.WRITE_CONTACTS" />
	<uses-permission android:name="android.permission.READ_CALL_LOG" />
	<uses-permission android:name="android.permission.BIND_TELECOM_CONNECTION_SERVICE"
		tools:ignore="ProtectedPermissions" />
	<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
	<uses-permission android:name="android.permission.READ_PHONE_STATE" />
	<uses-permission android:name="android.permission.CALL_PHONE" />
	<uses-permission android:name="android.permission.READ_CALL_LOG" />
	<uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
	<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
	<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />

	<uses-feature android:name="android.hardware.camera" />
	<uses-feature android:name="android.hardware.camera.autofocus" />
	<uses-feature android:name="android.hardware.audio.output" />
	<uses-feature android:name="android.hardware.microphone" />


	<application android:usesCleartextTraffic="true" android:name=".MainApplication"
		android:label="@string/app_name" android:icon="@mipmap/ic_launcher"
		android:allowBackup="false" android:theme="@style/AppTheme">
		<activity android:exported="true" android:name=".MainActivity"
			android:label="@string/app_name"
			android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
			android:launchMode="singleTask" android:windowSoftInputMode="adjustResize">
			<intent-filter>
				<action android:name="android.intent.action.MAIN" />
				<category android:name="android.intent.category.LAUNCHER" />
				<action android:name="android.telecom.ConnectionService" />

			</intent-filter>
		</activity>
		<service android:exported="true"
			android:name="io.wazo.callkeep.RNCallKeepBackgroundMessagingService" />
		<service android:exported="true" android:name="io.wazo.callkeep.VoiceConnectionService"
			android:label="Wazo"
			android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE"
			android:foregroundServiceType="camera|microphone">

			<intent-filter>
				<action android:name="android.telecom.ConnectionService" />
			</intent-filter>
		</service>
	</application>
</manifest>

Versions

- Callkeep: 4.3.3
- React Native: 0.70.6
- Android: 12.0.0

Logs

/node_modules/react-native-callkeep/android/src/main/java/io/wazo/callkeep/RNCallKeepModule.java:367: Error: Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with checkPermission) or explicitly handle a potential SecurityException [MissingPermission]
        telecomManager.placeCall(uri, extras);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions