Android系统是如何获得U盘挂载路径的?

「已注销」 2014-06-05 08:35:46
Android系统是如何获得U盘挂载路径的?小弟新手,这方面的资料太少了,请大神指点一二~
...全文
2926 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
技术强则国强 2016-02-27
  • 打赏
  • 举报
回复
@Override public void onReceive(Context context, Intent intent) { String path = intent.getDataString(); path = path.substring(11) + "/"; // path=file:///mnt/usb if (intent.getAction().equals(Intent.ACTION_MEDIA_MOUNTED) || intent.getAction().equals(Intent.ACTION_MEDIA_CHECKING)) { msg.arg1 = USB_STATE_ON; } else { msg.arg1 = USB_STATE_OFF; Toast.makeText(context, "USB被拔出", Toast.LENGTH_LONG).show(); } }///String path = intent.getDataString();这个就是获取的路径 //我获取的路径为: file:///storage/usbotg
zhangle123 2014-06-09
  • 打赏
  • 举报
回复
可以参考下面的代码:
private static final String PROP_SD_INTERNAL_PATH = "internal_sd_path";
    private static final String PROP_SD_EXTERNAL_PATH = "external_sd_path";
/**
        * Returns external SD card path.
        * @hide
        * @internal
        */
    public static String getExternalStoragePath() {
        String path = null;
        try {
            path = SystemProperties.get(PROP_SD_EXTERNAL_PATH);
            Log.i(TAG, "getExternalStoragePath path=" + path);
        } catch (IllegalArgumentException e) {
            Log.e(TAG, "IllegalArgumentException when getExternalStoragePath:" + e);
        }
        Log.d(TAG, "getExternalStoragePath path=" + path);
        return path ;
    }

    /**
        * Returns internal Storage path.
        * @hide
        * @internal
        */
    public static String getInternalStoragePath() {
        String path = null;
        try {
            path = SystemProperties.get(PROP_SD_INTERNAL_PATH);
            Log.i(TAG, "getInternalStoragePath from Property path=" + path);
        } catch (IllegalArgumentException e) {
            Log.e(TAG, "IllegalArgumentException when getInternalStoragePath:" + e);
        }
        if (STORAGE_PATH_SD1.equals(path)) {
            if (Process.myUid() == Process.SYSTEM_UID) {
                path = "/storage/emulated/"+Integer.toString(Process.SYSTEM_UID);
            } else {
                path = Environment.getExternalStorageDirectory().toString();
            }
        }
        Log.d(TAG, "getInternalStoragePath path=" + path);
        return path ;
    }
「已注销」 2014-06-05
  • 打赏
  • 举报
回复
我看到网上有不少方法说监听U盘插拔广播,然后通过intent.getData().getPath()方法获得U盘的挂载路径。可是网上给出的例子都是一部分代码,放到工程中全是错误。自己摸索着写了一个,可是插入U盘时,intent.getAction()等信息能读出来,但是intent.getData()信息却为空。请问有没有这方面的资料?
卡卡的喵 2014-06-05
  • 打赏
  • 举报
回复
请参考http://blog.csdn.net/xubright/article/details/9832607

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧