Articles of sd card

在Android中将数据存储在SD卡上

使用文档中的数据存储页面 ,我试图将一些数据存储到SD卡。 这是我的代码: // Path to write files to String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/"+ctxt.getString(R.string.package_name)+"/files/"; String fname = "mytest.txt"; // Current state of the external media String extState = Environment.getExternalStorageState(); // External media can be written onto if (extState.equals(Environment.MEDIA_MOUNTED)) { try { // Make sure the path exists boolean exists = (new File(path)).exists(); if (!exists){ […]

播放SD卡上的MP3声音

我的平板电脑的SD卡上有一个名为“/Android/data/com.example.android.app/files”的目录。 我只是手动创build它,因为我不知道如何testing我的应用程序的这一方面。 我有文件名存储在像“/folder1/audio1.mp3”,“/folder2/audio1.mp3”等sqlite数据库…文件具有相同的名称,但在不同的文件夹,因为它们是相同的东西是不同的语言。 我在SD卡的“/Android/data/com.example.android.app/files”目录中有这些文件夹(folder1和folder2)和所有mp3文件。 所以,我从数据库中获取文件名,并尝试使用以下命令到达SD卡上的文件夹: String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/com.example.android.app/files"; 这只是基本上结束了path“存储/ Android /数据/ com.example.android.app /文件”。 现在,在开发早期,我的原始文件夹里有几个mp3文件,但是最后会有太多的文件保存在那个文件夹中,所以我开始调查从SD卡中获取它们。 当我生他们的时候,我是这样得到的: rid = getResources().getIdentifier(filname, "raw", "com.example.android.app"); 现在,SD卡上的文件变成: filename = "/folder1/audio.mp3" 而不是“生”,我有: "storage/Android/data/com.example.android.app/files" 基本上是这样玩的 AssetFileDescriptor afd = mContext.getResources().openRawResourceFd(rid); mMP.reset(); mMP.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength()); mMP.prepare(); mMP.start(); afd.close(); 然而,这种方法现在似乎没有一样的工作方式。 你可以从SD卡上的MP3文件获取资源ID? 那现在是我的合适的方式吗? 有没有另外一种方式让我玩,无论来源是内部还是外部记忆,都可以起作用。 彻底困惑。 编辑:我确实发现这可能会有所帮助…但也许只有等式。 编辑2:我在这里看。 它使用我不认为是我想要的媒体存储。

Android中的EACCESS权限被拒绝

在外部SD卡中写入文件时,我收到错误EACCESS权限被拒绝。 我已经设置了权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>但是当我读取文件,我成function够读取它,但不能写入文件。 我用来在SD卡中写入文件的代码是: String path="mnt/extsd/Test"; try{ File myFile = new File(path, "Hello.txt"); //device.txt myFile.createNewFile(); FileOutputStream fOut = new FileOutputStream(myFile); OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); myOutWriter.append(txtData.getText()); myOutWriter.close(); fOut.close(); Toast.makeText(getBaseContext(),"Done writing SD "+myFile.getPath(),Toast.LENGTH_SHORT).show(); } catch (Exception e) { Toast.makeText(getBaseContext(), e.getMessage(),Toast.LENGTH_SHORT).show(); System.out.println("Hello"+e.getMessage()); } } 外部存储卡的path是mnt/extsd/ 。 这就是为什么我不能够使用Environment.getExternalStorageDirectory().getAbsolutePath()给我一个pathmnt/sdcard ,这个path是我的平板电脑的内部存储path。 请提出为什么这是如此n我该如何解决这个问题

没有得到SD卡相关的意图我的广播接收机

我正在尝试注册一个删除SD卡的接收器,但我的接收器没有被调用去除粘贴我的代码在这里的SD卡。 我在oncreate()中注册接收器,并在ondestroy函数中取消注册。 请让我知道如果我有任何错误。 void registerSDCardStateChangeListener() { final String MEDIA_REMOVED = "android.intent.action.MEDIA_REMOVED"; final String MEDIA_UNMOUNTED = "android.intent.action.MEDIA_UNMOUNTED"; final String MEDIA_BAD_REMOVAL = "android.intent.action.MEDIA_BAD_REMOVAL"; // final String MEDIA_EJECT = "android.intent.action.MEDIA_EJECT"; final String MEDIA_EJECT = "android.intent.action.MEDIA_SCANNER_FINISHED"; mSDCardStateChangeListener = new BroadcastReceiver() { @ Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equalsIgnoreCase(MEDIA_REMOVED) || action.equalsIgnoreCase(MEDIA_UNMOUNTED) || […]

Android低级读取大于2GB的SD卡

我的Android应用程序尝试通过访问实际设备(在我的情况下,/ dev / block / vold / 179:1)读取SD卡的物理扇区。 (当然,这是根植在手机上的) 我可以打开设备作为FileInputStream ,并从中读取数据。 但是,我似乎无法读取超过2GB的标记(我的存储卡是16GB)。 这是因为Android不支持大于2GB的文件? 如果是这样的话,为什么函数像position()和skip()接受long参数? 有没有人有关如何从设备读过去2GB的build议?

如何区分Android内部和外部的SD卡path

在android应用程序中,我需要做的: If(removable SdCard is present){ String path=get the path of removable Sdcard() ; //using this path we will create some files in sdcard } else{ //display error message } 为了实现这一点,我们使用的代码如下: If (Environment.getExternalStorageState().equalsIgnoreCase(Environment.MEDIA_MOUNTED)){ String path= Environment.getExternalStorageDirectory().getPath(); } 上面的代码在一些最新的android手机中失败。 请帮助我们。 以下是我们所尝试的细节: 在具有ICS和JellyBean操作系统的android手机中,可移动SD卡的确切path因设备制造商而异。 见下表 Tested Devices OS version removable sdcard path internal sd path Samsung galaxy s2 4.0.4 […]

警告:File.mkdir()被忽略

我使用Media Recorder API创build了一个基本的audio录音应用程序。 我试图在SD卡中创build一个文件夹,并将录制的文件保存到该文件夹​​。 我收到以下代码的警告。 File.mkdir()被忽略 // Assign random number to avoid audio file from overwriting Long tsLong = System.currentTimeMillis()/1000; // Specify a Location for the recorded file to be stored in the SD card mFileName = Environment.getExternalStorageDirectory().getAbsolutePath() + "/AudioRecordTest/"; File path = new File(mFileName); if(!path.exists()) { path.mkdir(); } mFileName += "/AudioRecordTest_" + tsLong.toString() + […]

什么时候应该将我的Android应用程序定义为不可移动到SD卡(installLocation = internalOnly)?

在这种情况下,我应该禁止用户将我的应用程序移动到SD卡(通过将installLocation设置为internalOnly )? 我想要知道这个几个应用程序,所以请不要问我的应用程序。 我想知道这一般的任何应用程序。

如何检查新创build的文件夹是否出现在Android的SD卡

从我的应用程序,我想存储一些图像到我的SD卡。 为此,我需要创build一个文件夹。 在第一次文件夹将创build,但在它之后检查该文件夹是否存在。 我该怎么做?

具有Environment.getExternalStorageDirectory()的Android设备!= / mnt / sdcard /?

当然,在我的代码中,我使用Environment.getExternalStorageDirectory()而不是硬连线/ mnt / sdcard /。 但是我刚刚意识到,当我通过交换格式的数据库转储从我的应用程序导出数据时,文件path是/ mnt / sdcard / …这可能会解释我在用户的日志中看到的一些奇怪的错误。 我将在导入模块中进行相应的更改。 但我很好奇 – 任何Android设备1.6都有Environment.getExternalStorageDirectory()!= / mnt / sdcard /?