I didn't need to open the device. I just created it (which I wasn't doing before) and called the appropriate functions, i.e.
AudioIODevice* audioDevice = audioDeviceType->createDevice(outputDeviceName, inputDeviceName);
StringArray inputChannelNames = audioDevice->getInputChannelNames();
StringArray outputChannelNames = audioDevice->getOutputChannelNames();
Would you please clarify your remarks because open() takes as input a representation of the input and output channels that you wish to enable.
virtual String open (const BigInteger& inputChannels, const BigInteger& outputChannels, double sampleRate, int bufferSizeSamples) = 0;