Android ndk获取手机内部存储卡的根目录方法

如下所示:

 jclass envcls = env->FindClass("android/os/Environment"); //获得类引用
 if (envcls == nullptr) return 0;

 //找到对应的类,该类是静态的返回值是File
 jmethodID id = env->GetStaticMethodID(envcls, "getExternalStorageDirectory", "()Ljava/io/File;");

 //调用上述id获得的方法,返回对象即File file=Enviroment.getExternalStorageDirectory()
 //其实就是通过Enviroment调用 getExternalStorageDirectory()
 jobject fileObj = env->CallStaticObjectMethod(envcls,id,"");

 //通过上述方法返回的对象创建一个引用即File对象
 jclass flieClass = env->GetObjectClass(fileObj); //或得类引用
 //在调用File对象的getPath()方法获取该方法的ID,返回值为String 参数为空
 jmethodID getpathId = env->GetMethodID(flieClass, "getPath", "()Ljava/lang/String;");
 //调用该方法及最终获得存储卡的根目录
 jstring pathStr = (jstring)env->CallObjectMethod(fileObj,getpathId,"");

 path = env->GetStringUTFChars(pathStr,NULL);

以上这篇Android ndk获取手机内部存储卡的根目录方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Android遍历所有文件夹和子目录搜索文件

    本文实例为大家分享了android遍历所有文件夹和子目录来搜索文件,供大家参考,具体内容如下 java代码: import java.io.File; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget

  • Android ndk获取手机内部存储卡的根目录方法

    如下所示: jclass envcls = env->FindClass("android/os/Environment"); //获得类引用 if (envcls == nullptr) return 0; //找到对应的类,该类是静态的返回值是File jmethodID id = env->GetStaticMethodID(envcls, "getExternalStorageDirectory", "()Ljava/io/File;&

  • Android之获取手机内部及sdcard存储空间的方法

    知识点: 内部存储空间获取总大小和可用大小: sdcard存储空间获取总大小和可用大小: 新名词记录{StatFs:描述文件系统信息的类} 概览 在开发中,我们或多或少都会用到存储空间进行存储数据.移动设备上可以有两种的存储方式:手机内部空间和sdcard外部空间.对于要使用存储空间,要使用哪一个?如何判断是否有足够的空间?sdcard是否挂载?等等诸多问题就来了. 对于设备内部存储空间来说,是一定会存在的.如果使用内部存储空间,我们需要做的是判断内部存储空间是否有足够大的可用空间给我们使用.现

  • Android编程获取手机屏幕分辨率大小的方法

    本文实例讲述了Android编程获取手机屏幕分辨率大小的方法.分享给大家供大家参考,具体如下: import android.app.Activity; import android.os.Bundle; import android.util.DisplayMetrics; import android.widget.TextView; public class A03Activity extends Activity { private TextView mTextView01; /** C

  • Android编程获取手机后台运行服务的方法

    本文实例讲述了Android编程获取手机后台运行服务的方法.分享给大家供大家参考,具体如下: public static String getRunningServicesInfo(Context context) { StringBuffer serviceInfo = new StringBuffer(); final ActivityManager activityManager = (ActivityManager) context .getSystemService(Context.A

  • Android 实现获取手机里面的所有图片详解及实例

    Android 实现获取手机里面的所有图片详解及实例 实现代码: public class MainActivity extends Activity { //查看图片按钮 private Button look; private Button add; //显示图片名称的list ListView show_list; ArrayList names = null; ArrayList descs= null; ArrayList fileNames = null; @Override pro

  • Android中获取手机屏幕大小的方法

    本文为大家解析Android中如何获取手机屏幕大小,提供一个解决方法,分享给大家供大家参考,具体内容如下 运行效果图: 运行程序后,当我们点击Button按钮时,可以看到下面的效果图: 具体代码: 我们可以通过使用类DisplayMetrics来获取手机屏幕的分辨率大小.DisplayMetrics类是获取手机屏幕各种属性的关键类.下面通过例子来展示如何获取手机屏幕的分辨率. 在布局文件main.xml中添加一个TextView对象,一个Button对象.其中TextView对象用来显示获得的分

  • Android编程获取图片和视频缩略图的方法

    本文实例讲述了Android编程获取图片和视频缩略图的方法.分享给大家供大家参考,具体如下: 从Android 2.2开始系统新增了一个缩略图ThumbnailUtils类,位于framework的android.media.ThumbnailUtils位 置,可以帮助我们从mediaprovider中获取系统中的视频或图片文件的缩略图,该类提供了三种静态方法可以直接调用获取. 1. createVideoThumbnail static Bitmap createVideoThumbnail(

  • Android编程获取并设置Activity亮度的方法

    本文实例讲述了Android编程获取并设置Activity亮度的方法.分享给大家供大家参考,具体如下: 此API只适合2.1以上版本: /** * 判断是否开启了自动亮度调节 * * @param aContext * @return */ public static boolean isAutoBrightness(ContentResolver aContentResolver) { boolean automicBrightness = false; try { automicBright

  • Android编程获取设备MAC地址的实现方法

    本文实例讲述了Android编程获取设备MAC地址的实现方法.分享给大家供大家参考,具体如下: /** * 获取设备的mac地址 * * @param ac * @param callback * 成功获取到mac地址之后会回调此方法 */ public static void getMacAddress(final Activity ac, final SimpleCallback callback) { final WifiManager wm = (WifiManager) ac .get

  • 基于Android中获取资源的id和url方法总结

    一.获取android工程里面的各种资源的id; 1.1 string型 比如下面: << string name="OK">> 客户端请求成功 << / string>> //string资源中 名称为OK的 id 获取方式 int strId = getResources().getIdentifier("OK", "string", getPackageName()); 1.2 color型

随机推荐