List of usage examples for android.os.storage StorageVolume isPrimary
public boolean isPrimary()
From source file:com.example.android.scopeddirectoryaccess.ScopedDirectoryAccessFragment.java
@Override public void onViewCreated(final View rootView, Bundle savedInstanceState) { super.onViewCreated(rootView, savedInstanceState); mCurrentDirectoryTextView = (TextView) rootView.findViewById(R.id.textview_current_directory); mNothingInDirectoryTextView = (TextView) rootView.findViewById(R.id.textview_nothing_in_directory); mPrimaryVolumeNameTextView = (TextView) rootView.findViewById(R.id.textview_primary_volume_name); // Set onClickListener for the primary volume Button openPictureButton = (Button) rootView.findViewById(R.id.button_open_directory_primary_volume); openPictureButton.setOnClickListener(new View.OnClickListener() { @Override//from w ww . j a v a 2 s . c om public void onClick(View view) { String selected = mDirectoriesSpinner.getSelectedItem().toString(); String directoryName = getDirectoryName(selected); StorageVolume storageVolume = mStorageManager.getPrimaryStorageVolume(); Intent intent = storageVolume.createAccessIntent(directoryName); startActivityForResult(intent, OPEN_DIRECTORY_REQUEST_CODE); } }); // Set onClickListener for the external volumes if exists List<StorageVolume> storageVolumes = mStorageManager.getStorageVolumes(); LinearLayout containerVolumes = (LinearLayout) mActivity.findViewById(R.id.container_volumes); for (final StorageVolume volume : storageVolumes) { String volumeDescription = volume.getDescription(mActivity); if (volume.isPrimary()) { // Primary volume area is already added... if (volumeDescription != null) { // ...but with a default name: set it to the real name when available. mPrimaryVolumeNameTextView.setText(volumeDescription); } continue; } LinearLayout volumeArea = (LinearLayout) mActivity.getLayoutInflater().inflate(R.layout.volume_entry, containerVolumes); TextView volumeName = (TextView) volumeArea.findViewById(R.id.textview_volume_name); volumeName.setText(volumeDescription); Button button = (Button) volumeArea.findViewById(R.id.button_open_directory); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String selected = mDirectoriesSpinner.getSelectedItem().toString(); String directoryName = getDirectoryName(selected); Intent intent = volume.createAccessIntent(directoryName); startActivityForResult(intent, OPEN_DIRECTORY_REQUEST_CODE); } }); } RecyclerView recyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerview_directory_entries); if (savedInstanceState != null) { mDirectoryEntries = savedInstanceState.getParcelableArrayList(DIRECTORY_ENTRIES_KEY); mCurrentDirectoryTextView.setText(savedInstanceState.getString(SELECTED_DIRECTORY_KEY)); mAdapter = new DirectoryEntryAdapter(mDirectoryEntries); if (mAdapter.getItemCount() == 0) { mNothingInDirectoryTextView.setVisibility(View.VISIBLE); } } else { mDirectoryEntries = new ArrayList<>(); mAdapter = new DirectoryEntryAdapter(); } recyclerView.setAdapter(mAdapter); recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); mDirectoriesSpinner = (Spinner) rootView.findViewById(R.id.spinner_directories); ArrayAdapter<CharSequence> directoriesAdapter = ArrayAdapter.createFromResource(getActivity(), R.array.directories, android.R.layout.simple_spinner_item); directoriesAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); mDirectoriesSpinner.setAdapter(directoriesAdapter); }
From source file:com.android.server.MountService.java
private StorageVolume getPrimaryPhysicalVolume() { synchronized (mVolumesLock) { for (StorageVolume volume : mVolumes) { if (volume.isPrimary() && !volume.isEmulated()) { return volume; }//from w w w.j a v a 2s .com } } return null; }
From source file:com.android.server.MountService.java
private void updatePublicVolumeState(StorageVolume volume, String state) { final String path = volume.getPath(); final String oldState; synchronized (mVolumesLock) { oldState = mVolumeStates.put(path, state); volume.setState(state);// w ww. j av a 2 s.c o m } if (state.equals(oldState)) { Slog.w(TAG, String.format("Duplicate state transition (%s -> %s) for %s", state, state, path)); return; } Slog.d(TAG, "volume state changed for " + path + " (" + oldState + " -> " + state + ")"); // Tell PackageManager about changes to primary volume state, but only // when not emulated. if (volume.isPrimary() && !volume.isEmulated()) { if (Environment.MEDIA_UNMOUNTED.equals(state)) { mPms.updateExternalMediaStatus(false, false); /* * Some OBBs might have been unmounted when this volume was * unmounted, so send a message to the handler to let it know to * remove those from the list of mounted OBBS. */ mObbActionHandler.sendMessage(mObbActionHandler.obtainMessage(OBB_FLUSH_MOUNT_STATE, path)); } else if (Environment.MEDIA_MOUNTED.equals(state)) { mPms.updateExternalMediaStatus(true, false); } } synchronized (mListeners) { for (int i = mListeners.size() - 1; i >= 0; i--) { MountServiceBinderListener bl = mListeners.get(i); try { bl.mListener.onStorageStateChanged(path, oldState, state); } catch (RemoteException rex) { Slog.e(TAG, "Listener dead"); mListeners.remove(i); } catch (Exception ex) { Slog.e(TAG, "Listener failed", ex); } } } }