1. A method for providing to a plurality of software applications executing in a software environment controlled access to limited hardware resources on a Portable Multimode Communication Device (“PMCD”), comprising: establishing a software environment in the PMCD in which a plurality of software applications are concurrently executing, each software application of the plurality of software applications configured to perform a predetermined application function using a respective hardware set, each respective hardware set including a plurality of hardware resources provided on said PMCD; allocating the plurality of hardware resources to the plurality of software applications; dynamically determining access priority levels for the plurality of software applications relative to at least a first hardware resource of the plurality of hardware resources at a present time by evaluating a usage scenario of the PMCD based on one or more parameters, where the access priority levels vary with changes in the usage scenario; responsive to the evaluating, dynamically re-allocating the first hardware resource from a first software application of the plurality of software applications to a second software application of the plurality of software applications having a highest access priority level; wherein the usage scenario comprises an aggregate set of circumstances, including events occurring within the PMCD and events occurring external to the PMCD, as indicated by the parameters; and wherein at least one of the parameters upon which the usage scenario is based is determined in accordance with an ambient condition selected from the group consisting of a visual scene, a presence of a particular identified human face a lighting condition an audio condition a Radio Frequency (“RF”) communication operational status, a network operational status, an orientation condition, a location condition, and a motion condition.