xamarin怎样获取android外卡路径

xamarin怎样获取android外卡路径,第1张

xamarin怎样获取android外卡路径

一部分手机将eMMC存储挂载到 /mnt/external_sd 、/mnt/sdcard2 等节点,而将外置的SD卡挂载到 Environment.getExternalStorageDirectory()这个结点。

此时,调用Environment.getExternalStorageDirectory(),则返回外置的SD的路径。

android 怎样动态的获取sd卡路径

链接电脑USB调试情况下,在电脑上有新的磁盘显示,一个SD的,一个手机的,打开SD的就可以找各文件夹路径

Android怎样获取外部存储器路径

读写sdcard上的文件

其中读写步骤按如下进行:

1、调用Environment的getExternalStorageState()方法判断手机上是否插了sd卡,且应用程序具有读写SD卡的权限,如下代码将返回true

Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)

2、调用Environment.getExternalStorageDirectory()方法来获取外部存储器,也就是SD卡的目录,或李知者使用"/mnt/sdcard/"目录

3、使用IO流 *** 作SD卡上的文件

注意点:手机应该已插入哪腊消SD卡,对于模拟器而言,可通过mksdcard命令来创建虚拟存储卡

必须在AndroidManifest.xml上配置读写局册SD卡的权限

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

我怎样才能获得外部SD卡路径为Android 4.0 +

1. 我想你需要这个外部SD卡:

new File("/mnt/external_sd/")

new File("/mnt/extSdCard/")

你的情况......

在更换Environment.getExternalStorageDirectory()您的作品,应在MNT目录优先和工作在那里检查什么..

你键入选择哪个SD卡

File storageDir = new File("/mnt/")

if(storageDir.isDirectory()){

String[] dirList = storageDir.list()

TODO some type of selecton method?

}

怎样获取class路径

import java.io.File

public class FileTest {

public static void main(String[] args) throws Exception {

System.out.println(Thread.currentThread().getContextClassLoader()

.getResource(""))

System.out.println(FileTest.class.getClassLoader().getResource(""))

System.out.println(ClassLoader.getSystemResource(""))

System.out.println(FileTest.class.getResource(""))

System.out.println(FileTest.class.getResource("/"))

 Class文件所在路径

System.out.println(new File("/").getAbsolutePath())

System.out.println(System.getProperty("user.dir"))

System.out.println(System.getProperty("file.encoding"))

}

}

android 怎么获取相册路径

android手机4.2版本之前是一个方法,大于4.2版本又是一个方法。

注意:现在手机市场android版本2015面上半年平均4.4,现在是平均5.0了。

before

你百度一下,都能查到,很简单.

after

private void startPickPhotoActivity() {

    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT)

    intent.setType("image/*")Or 'image/ jpeg '

    startActivityForResult(intent, RESULT_PICK_PHOTO_NORMAL)

    }

获得图片返回的路径

    @Override

    protected void onActivityResult(int requestCode, int resultCode,

        Intent data) {

    if (requestCode == RESULT_PICK_PHOTO_NORMAL) {

        if (resultCode == RESULT_OK &&data != null) {

选中图片路径

mFileName = MainActivity.getPath(getApplicationContext(),

            data.getData())

        if ("".equals(mFileName)) {

            return

        }

        Intent intent = new Intent(this, EditActivity.class)

        intent.putExtra("pathName", mFileName)

        startActivity(intent)

        }

    }

    }

    @TargetApi(Build.VERSION_CODES.KITKAT)

    public static String getPath(final Context context, final Uri uri) {

    final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT

     DocumentProvider

    if (isKitKat &&DocumentsContract.isDocumentUri(context, uri)) {

        ExternalStorageProvider

        if (UriUtils.isExternalStorageDocument(uri)) {

        final String docId = DocumentsContract.getDocumentId(uri)

        final String[] split = docId.split(":")

        final String type = split[0]

        if ("primary".equalsIgnoreCase(type)) {

            return Environment.getExternalStorageDirectory() + "/"

                + split[1]

        }

        }

        DownloadsProvider

        else if (UriUtils.isDownloadsDocument(uri)) {

        final String id = DocumentsContract.getDocumentId(uri)

        final Uri contentUri = ContentUris.withAppendedId(

            Uri.parse("content:downloads/public_downloads"),

            Long.valueOf(id))

        return UriUtils.getDataColumn(context, contentUri, null, null)

        }

        MediaProvider

        else if (UriUtils.isMediaDocument(uri)) {

        final String docId = DocumentsContract.getDocumentId(uri)

        final String[] split = docId.split(":")

        final String type = split[0]

        Uri contentUri = null

        if ("image".equals(type)) {

            contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI

        } else if ("video".equals(type)) {

            contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI

        } else if ("audio".equals(type)) {

            contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI

        }

        final String selection = MediaColumns._ID + "=?"

        final String[] selectionArgs = new String[] { split[1] }

        return UriUtils.getDataColumn(context, contentUri, selection,

            selectionArgs)

        }

    }

     MediaStore (and general)

    else if ("content".equalsIgnoreCase(uri.getScheme())) {

        Return the remote address

        if (UriUtils.isGooglePhotosUri(uri))

        return uri.getLastPathSegment()

        return UriUtils.getDataColumn(context, uri, null, null)

    }

     File

    else if ("file".equalsIgnoreCase(uri.getScheme())) {

        return uri.getPath()

    }

    return null

    }

如何获取android sdcard路径

Environment.getExternalStorageDirectory()

android怎么获取U盘路径

用Re管理器进入/mnt/目录一个一个找

android怎么获取分区路径

我们可以在adb中使用df 来查看分区情况。

1、跨分区不能用 MV命令来拷贝。但是可以用CP命令。如PWD,当前目录为:/data/local/tmp 。

此目录下有个busybox和1.txt文件。则利用CP命令拷贝如下:./busybox cp1.txt /system.

2、Android的用户组有 System, root, shell

3、怎么样才能 *** 作分区。

分区 *** 作是需要权限的。一般来说System分区的权限限制得比较严,Data分区限制比较严,用户可以 *** 作的目录有local,app目录。比如/data/local/tmp.

data分区常用目录:app , system , data ,local,misc 其中system,local可以进入并使用ls等命令。data,app可以进入,但不能用ls命令。

data/data目录:存放的是所有APK程序数据的目录,每个APK对就一个自己的Data目录,就是在data/data/目录下,会产生一个跟Package一样的目录。如有一个APK,它的包名叫.test.hello则,在data/data/目录下会有一个.test.hello的目录,这个APK只能 *** 作此目录,不能 *** 作其它APK的目录.这个在LINUX下叫做用户进程只能 *** 作自己的进程目录.

data/app目录:用户安装的APK放在这里。我们如果把APK放入这个文件夹下面的话,就算安装好了。这就叫静默安装。不用管APK文件里面的lib目录下的库文件,系统会自动帮我们放入调用库的。

data/system目录下面有packages.xml ,packages.list,appwidgets.xml, 等等一些记录手机安装的软件,Widget等信息。

data/misc目录:保存WIFI帐号,VPN设置信息等。如保存了一个WIFI连接帐号,则此目录下的WIFI目录下面可以查看到。

system分区常用目录: app , lib, xbin, bin , media,framework.

system/app目录:存放系统自带的APK。没有测试过是否将APK放入到System/app目录下,也是静默安装APK。?

system/lib目录:存放APK程序用到的库文件。

system/bin目录和system/xbin目录:存放的是shell命令。

system/framework目录:启用Android系统所用到框架,如一些jar文件。

4 Android下面的目录都是有权限的,要 *** 作目录都需要有此权限才能 *** 作,如果没有,则使用chomd777来修改.如果是分区根目录,如/data分区, /system分区.都没有权限,则需要重新挂载. 使用 mount -oremount XX

1 、编写java代码

package net.lu;

public class HelloJNI {

static {

System.loadLibrary("HelloJNI")

}

public native static int get()

public native static void set(int i)

public static void main(String[] args) {

HelloJNI test = new HelloJNI()

test.set(10)

System.out.println(test.get())

}

}

2、在HelloJNI.java文件所在目录下编译.java文件。

javac HelloJNI.java

3、生成.h头文件,需要注意的是,要在枝敏蠢src目拿指录层生成文件

... src] # javah -jni net.lu.HelloJNI

4、编写.c 文件

#include "net_wangliping_HelloJNI.h"

int i = 0

JNIEXPORT jint JNICALL Java_net_wangliping_HelloJNI_get(JNIEnv *env, jclass jc)

{

return i

}

JNIEXPORT void JNICALL Java_net_wangliping_HelloJNI_set(JNIEnv *env, jclass jc, jint j)

{

i = 2*j

}

5、生成.so文件

[root@turbolinux src]# gcc -I/usr/java/jdk1.5.0_13/include/linux -I/usr/java/jdk1.5.0_13/include -fPIC -shared -o libHelloJNI.so HelloJNI.c

6、eclipse 调用SO文件

最简单的猛陪方式,调用 System.out.println(System.getProperty("java.library.path"))

得到/usr/java/jdk1.5.0_13/jre/lib/i386,将SO文件放在该目录下

运行java程序,输出了由C语言函数计算出的结果

Xamarin可以构建用C#编写的跨平台应用,目前支持的平台包括Windows、Linux、Android和IOS平台。 开发Mac和Ios程序需要对应的设备 。Android、IOS和UWP平台由微软提供支持,GTK#(Linux,Win7)支持由社区提供。详细参阅 Xamarin.Forms 平台支持 。

注意:观看此文需要你对Xamarin开发有一定基础。

Xamarin的目标是实现跨平台应用开发,最主要的是iOS和Android平台开发,所以对触摸或指针事件是比较完善的,但有的时候我们需要在Windows等桌面平台开发,需耐耐消要能获取键盘按键事件。因此我写这篇文章介绍如何在Xamarin.Forms控件上获取键盘事件。

获取键盘事件需要在有键盘的平台上实现,因此我们要为不同的平台编写专用的控件。理解这篇文章的内容需要提前理解 自定义呈现器 。

我们在.net standard项目里新建一个自定义控件MySlider继承Slider:

以及枚举类Key:

然后我们到UWP项目中,创建CustomRenderer:

重写OnElementChanged函数,此函数在把Xamarin控件对应到本机控件时候调用,要注意释放旧的和初始化新的步骤。

Control 是本机控件的引用, Element 是Xamarin控件的引用。

在本机控件的键盘事件上加上我们的事件Control_KeyDown,在这亩正个事件里调用我们自定义Xamarin控件的函数,以实现调用UI事件。

然后我们返回.Net standard项目,在Xaml里写:

很简单只是为了学习测试。

cs文件内容是

我们通过函数OnKey,实现按下F键让Slider取最大值,按下E键让Slider取最小值。

测试一下结果昌知,按F键Slider取最大值,按E键取最小值。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12193188.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存