相关疑难解决方法(0)

Nexus 4没有通过MTP显示文件

我正在尝试简单地将一个简单的XML文件写入SD卡,我注意到我的Nexus 4确实写了该文件,但是使用Windows 7无法通过MTP协议查看.

码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    CustomerQueryRqType customerQueryRequest = new CustomerQueryRqType();
    Serializer serializer = new Persister();
    File myFile = new File(Environment.getExternalStorageDirectory() + "/customerQueryRequest.xml");

    try {
        boolean created = myFile.createNewFile();
        serializer.write(customerQueryRequest, myFile);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以使用Astro文件管理器在手机上看到该文件:

截图

但Windows没有看到它......:

截图

adb shell 在目录中显示:

ls -l
drwxrwxr-x root     sdcard_rw          1970-01-16 20:51 Alarms
drwxrwxr-x root     sdcard_rw          1970-01-16 20:51 Android
drwxrwxr-x root     sdcard_rw          2012-11-21 19:30 DCIM
drwxrwxr-x root     sdcard_rw          1970-01-16 20:51 Download
drwxrwxr-x root     sdcard_rw          1970-01-16 20:51 …
Run Code Online (Sandbox Code Playgroud)

android usb-drive mtp nexus-4

78
推荐指数
3
解决办法
6万
查看次数

Android如何使用MediaScannerConnection scanFile

我将图像添加到SDCARD上的文件夹中.由于图像和我的文件夹在图库中没有立即可见,我试图让MediaScannerConnection更新并在图库中显示文件夹/图像.这对我来说不是很好,因为Gallery中没有任何内容.我只在Eclipse AVD中测试.

我没有看到很多关于这个的讨论,因为scanFile是自api8以来的新功能.有人能说明这是怎么做的吗?

我在服务和Activity中尝试它但在onScanCompleted时继续获得uri = null.

android

39
推荐指数
6
解决办法
8万
查看次数

扫描Android SD卡以获取新文件

我的应用程序允许用户将图像保存到SD卡.但是我不知道如何卸下并重新安装SD卡之前如何让它出现在画廊中.我已经用Google搜索了几天这个问题,但我不确定如何让它自动出现.我找到了 这个链接,但我不确定如何使用该类.这是我用来保存文件.在try catch块的底部是我想要扫描sd卡以获取新媒体的地方.

    FileOutputStream outStream = null;
    File file = new File(dirPath, fileName);
    try {
        outStream = new FileOutputStream(file);
        bm.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
        outStream.flush();
        outStream.close();
    } catch {
         ...
    }
Run Code Online (Sandbox Code Playgroud)

如果有人能指出我正确的方向,我将不胜感激.

media android sd-card android-mediascanner

11
推荐指数
2
解决办法
3万
查看次数

创建的文件夹在文件资源管理器中不可见.

我在sdcard上创建文件夹和文件时遇到问题.

这是代码:

    File folder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString() + "/folder");
    boolean success;
    if (!folder.exists()) {
        success = folder.mkdirs();
    }
    File obdt = new File(folder, "file.txt");
    try {
        success = obdt.createNewFile();
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

使用此代码,我希望在SD卡的文件夹folder中创建该文件Download夹,并在此文件中file.我希望用户可以访问该文件.所以我想把它放在一个共享文件夹中.
success变量是true,当我再次运行该代码的文件夹已经存在,并且犯规进来,如果块.
但我无法在文件资源管理器中的SD卡上看到创建的文件夹和文件.

信息:getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString()退货storage/sdcard/Download

我和Galaxy Nexus一起工作.

android file sd-card createfile create-directory

7
推荐指数
1
解决办法
6512
查看次数

在Android 5 Lollipop上使用USB-MTP访问目录时,MediaScannerConnection#scanFile会将目录转换为文件

重命名应用程序触发的文件之类的更改仅在重新启动Android设备后显示在USB-MTP界面上,或者在MediaScanner上注册新文件之后(请参阅特定路径(文件夹)上的触发媒体扫描程序),如何操作?):

file.renameTo(newFile);    
MediaScannerConnection.scanFile(context,
        new String[] { newFile.getAbsolutePath() }, null, null);
Run Code Online (Sandbox Code Playgroud)

USB-MTP用于通过USB访问Android设备的存储.例如,使用Windows资源管理器.

但是,使用Android 5.0.2(Build 10.6.A.0.454)下的Sony XPERIA Tablet Z(SGP321)文件夹newFile将成为一个4KB的文件.我不再能够使用Windows资源管理器访问文件夹结构,也无法将文件复制到我的计算机上.即使重启平板电脑!Android 4.4.4的相同设备不显示该行为.似乎只有USB-MTP视图被破坏.Android应用程序访问的文件结构看起来还不错.

问题:这种行为是错误还是我错误地实现了?什么是正确的实施?

到目前为止我为解决这个问题尝试了什么:

  1. 我目前的解决方法是避免scanFile使用目录.
  2. 我可以通过没有使用Android应用程序重命名文件将文件转换回目录MediaScannerConnection#scanFile.重启后,我可以再次使用Windows资源管理器访问该目录.
  3. 使用实际上是目录的Windows资源管理器重命名文件不会还原它们.即使重启后.
  4. /sf/answers/1534265981/ 中建议的这一行不刷新USB-MTP视图,但也不会将目录转换为文件:

    context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
                Uri.fromFile(newFile.getParentFile()));
    
    Run Code Online (Sandbox Code Playgroud)
  5. 也许相关:

android android-mediascanner sony-xperia android-5.0-lollipop

7
推荐指数
1
解决办法
2704
查看次数

Unity将图像保存到图库android/ios

我正在尝试将屏幕截图保存到设备的图库中.它工作正常,但它不会出现在画廊中.

这就是我的工作

selfie= new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false);
selfie.ReadPixels(new Rect(0, 0,Screen.width, Screen.height), 0, 0,false);

selfie.Apply ();
byte[] bytes = selfie.EncodeToPNG();
string filename = "Screenshot.png";

fileLocation = Path.Combine( Application.persistentDataPath, filename );
File.WriteAllBytes(fileLocation, bytes );

string myFolderLocation = "/mnt/sdcard/DCIM/Camera/";
myScreenshotLocation = myFolderLocation + filename;

System.IO.File.Move(fileLocation, myScreenshotLocation);
Run Code Online (Sandbox Code Playgroud)

它将图像保存在正确的位置.如果我在SD卡上查找,它就在那里.但是在画廊里却没有露面.所以我在File.move之后尝试了这个,刷新了库.

//REFRESHING THE ANDROID PHONE PHOTO GALLERY IS BEGUN
    AndroidJavaClass classPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    AndroidJavaObject objActivity = classPlayer.GetStatic<AndroidJavaObject>("currentActivity");        
    AndroidJavaClass classUri = new AndroidJavaClass("android.net.Uri");        
    AndroidJavaObject objIntent = new AndroidJavaObject("android.content.Intent", new object[2]{"android.intent.action.MEDIA_MOUNTED", classUri.CallStatic<AndroidJavaObject>("parse", "file://" + myScreenshotLocation)});        
    objActivity.Call ("sendBroadcast", …
Run Code Online (Sandbox Code Playgroud)

android screenshot gallery unity-game-engine ios

5
推荐指数
1
解决办法
9381
查看次数

如何将拍摄的照片添加到MediaStore

我想将照片添加到MediaStore,以便Gallery应用程序可以找到它们(无需重新启动设备).App的min sdk是9.任何帮助,博客或文档赞赏.

android android-mediascanner

4
推荐指数
1
解决办法
2865
查看次数

android dcim文件夹路径

有没有办法在Api等级7上获得DCIM路径(可能在SD卡或设备上)?Environment.DIRECTORY_DCIM仅在api level 8中可用

directory android gallery

3
推荐指数
1
解决办法
2万
查看次数