小编Kum*_*bek的帖子

从Picasa // Google +同步文件夹中获取图库中的图像不起作用

我正在尝试从Google+同步照片中的某个文件夹中获取图库应用中的图片.选择图像后,Uri正在正确传回.但是当我试图在存储设备上获取该图像的实际路径时,我可以使用它,它会崩溃.问题似乎与picasa内容提供商有关.

在Nexus S和Nexus 7以及其他设备上进行了测试.

E/AndroidRuntime(14572): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://com.google.android.gallery3d.provider/picasa/item/5427003652908228690 }}

这里,dat字段似乎正确地传递了Uri,但是当我尝试获取图像的位置时,它崩溃时出现以下错误.

W/GalleryProvider(14381): unsupported column: _data

似乎Picasa相册的内容提供商没有_data字段.

获取位置的代码是:

// imageUri is the Uri from above.
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = context.getContentResolver().query(imageUri, proj,null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();

String filePath = cursor.getString(column_index);
cursor.close();

此图片似乎唯一支持的列包括:[user_account,picasa_id,_display_name,_size,mime_type,datetaken,纬度,经度,方向]

我们如何获得此图像的实际位置.如果我们不应该使用此图像,则不应首先向用户显示这些图像.

启动图库应用程序的意图是:

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);

android android-intent android-contentprovider

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

减少持久磁盘大小

我有一个100GB永久磁盘连接到VM实例.但我不需要所有这些空间,因此不想为此付费.它也有一些数据.我拍了一张磁盘的快照,并尝试创建另一个.

在尝试创建一个新的时,它的价值不会低于100GB并且说,因为快照也是100GB,新磁盘的最小尺寸应该是100GB.

如何从快照创建较小的永久磁盘?或者减少现有的尺寸?

google-compute-engine google-cloud-platform

14
推荐指数
2
解决办法
2775
查看次数

Nsd Manager Android 4.2.2崩溃

发现服务会导致系统崩溃.我正在尝试的发现类型是

"_http._tcp."

这是日志.

D/NsdService(13310): Discover services
E/AndroidRuntime(13310): *** FATAL EXCEPTION IN SYSTEM PROCESS: NsdService
E/AndroidRuntime(13310): java.lang.NullPointerException
E/AndroidRuntime(13310): at com.android.server.NsdService$ClientInfo.access$1200(NsdService.java:801)
E/AndroidRuntime(13310):    at com.android.server.NsdService$NsdStateMachine$EnabledState.requestLimitReached(NsdService.java:244)
E/AndroidRuntime(13310):    at com.android.server.NsdService$NsdStateMachine$EnabledState.processMessage(NsdService.java:292)
E/AndroidRuntime(13310):    at com.android.internal.util.StateMachine$SmHandler.processMsg(StateMachine.java:905)
E/AndroidRuntime(13310):    at com.android.internal.util.StateMachine$SmHandler.handleMessage(StateMachine.java:760)
E/AndroidRuntime(13310):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(13310):    at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(13310):    at android.os.HandlerThread.run(HandlerThread.java:60)

我用来开始发现的代码是

NsdManager nsd = (NsdManager) getSystemService(Context.NSD_SERVICE);
nsd.discoverServices("_http._tcp.", NsdManager.PROTOCOL_DNS_SD, discoveryListener);

当我跑步时,我的手机每次都会重启.我想这是Android 4.2.2上的一个错误

android android-nsd

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

将数据从控制器传递到另一个视图,并在sencha touch中设置标签的值

我有一个控制器,我想将一个简单的字符串值传递给下一个View.

为此,我正在创建这样的视图.

var nextView = Ext.create('MyApp.view.NextView', {
    content: 'value'
});
Ext.Viewport.add(nextView);
Ext.Viewport.animateActiveItem(nextView, {
    type: 'slide',
    direction: 'left'
});
Run Code Online (Sandbox Code Playgroud)

NextView上,我有一个标签,我想HTML将标签的属性设置为我从控制器传递的值.即.value.

我的NextView看起来像这样.

Ext.define('MyApp.view.NextView', {
    extend: 'Ext.form.Panel',
    config: {
        content: 'null',
        items: [{
            xtype: 'label',
            html: 'value'
        }]
    }
});
Run Code Online (Sandbox Code Playgroud)

我不知道如何从这里开始.我不能将NextView作为表单.我只需要在这种情况下传递一个字符串值.

实现这一目标的最佳方法是什么?

extjs sencha-touch-2

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

从Google相册应用中获取视频(非本地)

使用Google相册应用,我正在尝试选择未在设备上缓存的视频.

我正在使用ACTION_GET_CONTENT意图来启动选项对话框,并从那里选择Google相册应用.

在选择本地视频时,它会以此形式返回Uri.

内容://媒体/外部/视频/媒体/ 6708

然后,我查询内容提供程序以检索实际的文件位置,然后从那里继续.文件位置如下所示.

/ storage/emulated/0/WhatsApp/Media/WhatsApp Video/VID-20131102-WA0000.mp4

现在,当我选择在线视频时,即:我的设备上尚未提供的视频,以及需要下载以供使用的视频,返回的Uri如下所示:

内容://com.google.android.apps.photos.content/1/ https://lh6.googleusercontent.com/_RD-QTO_SK5jlaPldTe2n5GANqMc3h-ukcbNoFlF1NLy=s0-d

现在,有了这个,没有记录的ContentProvider可以帮助我获得这个视频的实际链接.即使我进行查询,它也不会返回DISPLAY_NAME和SIZE列.

DISPLAY_NAME包含video.mpeg(不同视频的显示名称相同)

SIZE可能会告诉我实际文件的大小.

在SO上提到这篇文章.

我检查了各种帖子,并认为我必须通过内容提供商获取视频的InputStream,保存文件,并使用该文件.然而,选择图像文件可以正常工作,但对于视频则不然.

因此,要将流复制到文件,我有这个代码.

InputStream inputStream = context.getContentResolver().openInputStream(Uri.parse(path));

最后写入临时文件.该文件已创建,但似乎没有正确格式化.VLC播放文件,但始终只显示第一帧.

如果我从上面给出的URI的最后一部分获取URL,并尝试在浏览器上查看它,它会下载一个GIF文件.我猜这是问题所在.但我不知道如何获得视频的mpeg格式.

有谁经历过同样的经历?

android android-intent android-photos google-plus google-photos

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

Windows Phone 8通知和后台任务

我搜索了官方论坛和文档以及所有其他地方,但未能找到具体的答案.

问:在Windows Phone 8中,应用程序是否可以响应推送通知,并在后台执行任务?

据我所知,对于Toast和Tile Notifications,当app不在前台时,根本没有钩子,因为它能够响应传入的消息.

我认为"原始通知"是正确的选择,因为我不需要更新应用程序磁贴,甚至不需要显示Toast通知.但是,如果我能做到这一点,我无法找到一个例子,或者在文件中.

我找到了几个链接,讨论为Windows商店应用程序执行此操作,但我想知道是否可以为Windows Phone 8完成此操作.

我检查了这个其他帖子,

带有通知的Windows Phone 8后台任务

其中一个答案表明Whatsapp实际上有一个黑客,在收到推送通知后下载消息.那么,是不是回答我的问题,一个NO

c# push-notification windows-phone-8 mpns

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