Example usage for android.os.storage StorageVolume getOwner

List of usage examples for android.os.storage StorageVolume getOwner

Introduction

In this page you can find the example usage for android.os.storage StorageVolume getOwner.

Prototype

@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
public UserHandle getOwner() 

Source Link

Usage

From source file:com.android.server.MountService.java

@Override
public StorageVolume[] getVolumeList() {
    final int callingUserId = UserHandle.getCallingUserId();
    final boolean accessAll = (mContext.checkPermission(android.Manifest.permission.ACCESS_ALL_EXTERNAL_STORAGE,
            Binder.getCallingPid(), Binder.getCallingUid()) == PERMISSION_GRANTED);

    synchronized (mVolumesLock) {
        final ArrayList<StorageVolume> filtered = Lists.newArrayList();
        for (StorageVolume volume : mVolumes) {
            final UserHandle owner = volume.getOwner();
            final boolean ownerMatch = owner == null || owner.getIdentifier() == callingUserId;
            if (accessAll || ownerMatch) {
                if (!accessAll && volume.isEmulated()) {
                    filtered.add(0, volume);
                } else {
                    filtered.add(volume);
                }//  w  w w.  j a v  a 2s .co m
            }
        }
        return filtered.toArray(new StorageVolume[filtered.size()]);
    }
}