CR Keys To Control Phone Volume API
Article Metadata
Note: This API is not part of the public SDK. It can be found in the SDK API Plug-in.
Purpose
CR Keys To Control Phone Volume API provides keys for controlling the phone volume of an ongoing call.
Use cases
- KTelephonyIncallEarVolume and KTelephonyIncallLoudspeakerVolume CR Keys can be used to increase or decrease the phone volume of an ongoing call.
Example code
Header Files:
#include <telephonyinternalcrkeys_partner.h> //CR Keys To Control Phone Volume
#include <centralrepository.h> //CRepository
Link against:
centralrepository.lib //CRepository
Capabilities
CAPABILITY WriteUserData //required for Setting the Volume://Telephony Call Handling Persistent Info API.
//This API provides information related to call handling.
const TUid KCRUidCallHandling = {0x101F8784};
//Used by phone application, which contains the integer value
//of Incall in ear piece betweeen 1-10.
const TUint32 KTelephonyIncallEarVolume = 0x00000001;
//Used by phone application, which contains the integer value
//of Incall in Loud speaker betweeen 1-10.
const TUint32 KTelephonyIncallLoudspeakerVolume = 0x00000002;
The telephony Incall volume of ear piece and loud speaker can be controlled by passing the "KTelephonyIncallEarVolume"or "TelephonyIncallLoudspeakerVolume" to Get() and Set() methods of CRepository.
//To create a CRepository object for accessing Phone Volume repository:
iRepository = CRepository::NewL(KCRUidCallHandling);
The following is the code snippet for retrieving the Incall Ear Volume:
TBuf<3> lBufVol;
TInt lVol;
User::LeaveIfError(iRepository->Get(KTelephonyIncallEarVolume,lVol));
lBufVol.AppendNum(lVol);
CEikonEnv::InfoWinL(_L("Phone Incall Ear Volume:"),lBufVol);
The following is the code snippet for retrieving the Incall Loud Speaker Volume:
TBuf<3> lBufVol;
TInt lVol;
User::LeaveIfError(iRepository->Get(KTelephonyIncallLoudspeakerVolume, lVol));
lBufVol.AppendNum(lVol);
CEikonEnv::InfoWinL(_L("Phone Incall Loud Speaker Volume:"),lBufVol);
The following is the code snippet for setting the Incall Ear and Loud Speaker Volume:
TInt lVol = 6;
TInt lErr = iRepository->Set(KTelephonyIncallEarVolume,lVol);
TBuf<10> lBufErr;
lBufErr.AppendNum(lErr);
if ( lErr == KErrNone )
{
CEikonEnv::InfoWinL(_L("Phone Ear Volume Set:"),_L("Successful"));
}
else
{
CEikonEnv::InfoWinL(_L("Phone Ear Volume Set Err:"),lBufErr);
}
lBufErr.Zero();
lErr = iRepository->Set(KTelephonyIncallLoudspeakerVolume,lVol);
lBufErr.AppendNum(lErr);
if ( lErr == KErrNone )
{
CEikonEnv::InfoWinL(_L("Phone Loud Speaker Volume Set:"),_L("Successful"));
}
else
{
CEikonEnv::InfoWinL(_L("Phone Loud Speaker Vol Set Err:"),lBufErr);
}


29 Sep
2009
Central Repository Keys To Control Phone Volume API are useful to control the phone volume of an ongoing call. This article demonstrates the use of Central Repository Keys To Control Phone Volume API to retrieving and setting the ear phone volume and loud speaker volume using publish and subscribe keys. Note that this API, Central Repository Keys To Control Phone Volume API, is not part of the public SDK. So you have to download it from SDK API Plug-in before using it. Furthermore, the author added a working demo project, which can be used for more detailed study of new opportunities for various kinds of experiments.