小编Mar*_*ker的帖子

Android:调整自定义视图的大小.父级已调整大小,但宽度/高度更改不会传递给子视图

我目前正在尝试使用Android制作基于旧学校战舰棋盘游戏的游戏.我现在只是在试图感受它以及我可能需要制作游戏的组件.

基本上我目前在布局xml文件中的内容如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<org.greene.battleship.BoardView
    android:id="@+id/board_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:clickable="true" />
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <org.greene.battleship.ShipView
            android:id="@+id/ships_view"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:clickable="true" />
    </RelativeLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我希望BoardView只占用屏幕的某个部分,即视图应该是我想在此视图中创建的内容的大小.在这种情况下,它是2D板.这是通过从扩展View覆盖onMeasure()方法来完成的.视图的宽度保持不变,但高度与宽度相同,给出了完美的正方形.

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){

    int parent_width = MeasureSpec.getSize(widthMeasureSpec);
    this.setMeasuredDimension(parent_width, parent_width);
    Log.d("BOARD_VIEW", "BoardView.onMeasure : width = " + this.getMeasuredWidth() + ", height = " 
            + this.getMeasuredHeight());
}
Run Code Online (Sandbox Code Playgroud)

我通过覆盖onSizeChanged()函数的视图并检查那里的值来检查视图维度是否已更改.

@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh){
    Log.d("BOARD_VIEW", "BoardView.onSizeChanged : width = " + w + ", height …
Run Code Online (Sandbox Code Playgroud)

android parent-child dimensions custom-view

9
推荐指数
1
解决办法
5739
查看次数

将SubjectPublicKeyInfo格式的公钥转换为RSAPublicKey格式java

该PublicKey.getEncoded(),返回包含的SubjectPublicKeyInfo(X.509)格式的公钥的字节数组,我如何将其转换为RSA公共密钥编码?

java cryptography rsa pkcs#1

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

Google Cloud Messaging无法在公司网络上使用4.1.2设备

我已经实现了一个简单的GCM客户端和服务器.客户端使用当前的GCM客户端API(而不是已弃用的帮助程序库).服务器(C#和.NET)遵循相应的服务器准则(使用HTTP).我的服务器在公司域内的计算机上运行,​​因此我将客户端设备连接到公司网络内的Wi-Fi接入点,但可以访问Internet.

简而言之,我的问题是在4.3+手机上收到通知,但在连接到公司Wi-Fi网络时,4.1.2手机上从未收到通知.如果我将4.1.2设备连接到我们的公共访客Wi-Fi网络,则会按预期接收GCM消息,但该应用程序无法连接到公司服务器.

我看到一些迹象表明,当公司网络具有过度保护的防火墙时,GCM可能会失败(例如此处).但如果它只是一个防火墙问题,那么4.3+设备肯定不会收到任何消息?

一些额外的细节

我的测试手机如下:

  • 华硕Nexus 7(4.4.2)
  • 三星Galaxy S4(4.4.2)
  • HTC One(4.3)
  • 三星Galaxy S3(4.1.2)
  • 摩托罗拉Razr HD(4.1.2)

服务器已从所有五个设备接收到有效的注册ID.在一个15秒的计时器上,它发出一条发往所有五个注册IDS的消息.响应始终显示发送了5条消息,没有错误,也没有更改注册ID.但是,它始终在上面列出的前三个设备上接收,而从不在最后两个设备上接收(运行4.1.2).当我调试它们时,根本没有调用广播接收器.

我还验证了所有五种设备:

  • 拥有Google Play服务4.3.25
  • 没有SIM,因此没有蜂窝数据,并且在同一个WiFi网络上
  • 有正确的日期和时间
  • 已在同一Gmail测试帐户中注册
  • 我正在运行相同版本的客户端应用
  • 为其Google帐户启用所有同步设置

networking android google-cloud-messaging

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

动态脚本编译过多,最大值:[75/5m]

我在 elasticsearch 中遇到以下错误。

{"error":{"root_cause":[{"type":"circuit_breaking_exception","reason":"[script] Too many dynamic script compilations within, max: [75/5m]; please use indexed, or scripts with parameters instead; this limit can be changed by the [script.max_compilations_rate] setting","bytes_wanted":0,"bytes_limit":0}],"type":"search_phase_execution_exception","reason":"all shards failed","phase":"query","grouped":true,"failed_shards":[{"shard":0,"index":"en_product_idx2","node":"eFSrhLqNTYubukyF3pz8aw","reason":{"type":"query_shard_exception","reason":"script_score: the script could not be loaded","index_uuid":"IFYbHBBjRxW188SKVh0c4Q","index":"en_product_idx2","caused_by":{"type":"general_script_exception","reason":"Failed to compile inline script [if (params['_source']['sku'] == \"black\") return 999; else return 434-params.ids.indexOf(doc['id'].value.intValue());] using lang [painless]","caused_by":{"type":"circuit_breaking_exception","reason":"[script] Too many dynamic script compilations within, max: [75/5m]; please use indexed, or scripts with parameters instead; this limit can be changed by the [script.max_compilations_rate] setting","bytes_wanted":0,"bytes_limit":0}}}}],"caused_by":{"type":"circuit_breaking_exception","reason":"[script] Too many …

elasticsearch-6

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

如何获得(或绕过)Android DPC支持库?

我正在尝试为Android实现MDM客户端应用,在Android For Work世界中称为设备策略控制器或DPC。Google的有关构建DPC的文档在此处

记录的过程始于下载DPC支持库。不幸的是,他们提供下载链接(指向“ EMM社区的技术集成”部分)不起作用:系统提示您使用Google帐户登录,但是这样做后,我看到了以下信息:

我们很抱歉...

...但是您似乎无权访问此地点或内容。如果您认为自己应该可以使用该空间,请尝试使用您的帐户菜单注销并重新登录,方法是单击此页面右上角的头像以访问该菜单。如果此问题仍然存在,请通知您的支持代表,我们将进行进一步的故障排除。

其他人也有同样的问题:这里发行的问题单只有两个月之久,没有答案,但由于某种原因已被标记为“ 已回答”,然后被忽略。

这里记录步骤非常清楚DPC支持库是该过程的必需部分,并且没有描述使用它的任何替代方法。

那么,如何获得DPC支持库?可以在其他任何地方获得吗?还是失败了,我如何找出它的作用,以便可以在自己的代码中手动重现这些步骤?


我已经尝试过的一些步骤:

  1. 我已经成功注册了EMM社区,并可以访问EMM API。(即,我现在从Enterprises.generateSignupUrl收到了有效的响应,而不再是令人恐惧的“ 呼叫者未注册为MDM ”。)这本身就是一个漫长而令人沮丧的不透明过程。
  2. 我已经构建并运行googlesamples / android-testdpc应用,并仔细查看了源代码。不幸的是,这是一个仅客户端的演示:它不与EMM服务器通信,也不使用DPC支持库。具体而言,它并不获得,以便令牌提供设备上的工作资料中的授权,记录在这里
  3. 我玩过公共EMM演示系统及其DPC应用程序。这似乎做得不错,但是由于它是封闭源代码,因此我无法查看客户端或服务器的代码。

android mdm android-for-work

6
推荐指数
1
解决办法
1018
查看次数

在取消固定/固定时,如何停止Visual Studio调整侧面板的大小?

我的标准VS2010设置左侧固定了解决方案资源管理器,后面还有一些其他面板(类视图,团队资源管理器等):

解决方案资源管理器停靠的Visual Studio 2010

但是,如果我单击图钉图标以折叠该面板(为了给我更多空间来处理我的代码),然后再次单击该针以重新对接它,它总是显得更薄:请参阅下面的第二个屏幕截图.

解决方案Explorer面板崩溃了...... 在此输入图像描述

现在重新停靠.尔加!瘦! 在此输入图像描述

有没有办法让Visual Studio记住该面板的首选宽度?我一直在重新调整它,它让我疯狂.我已经尝试关闭/重新启动VS,面板停靠,希望它会持续存在,但每次我隐藏/恢复它都会回到更薄的宽度.

ide visual-studio-2010 visual-studio

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

Apple iOS MDM服务器设置设备注册/配置

我们正在尝试设置我们自己的内部iOS MDM服务器,并且我们遇到了一些问题,根据Apple文档,我们看到的内容并不一定符合我们的预期.

按照Apple网站上的说明,我们设置了一个网页,用户可以通过点击链接注册他们的设备.此链接使设备通过"设备注册过程",如苹果"无线配置文件传送和配置"文档的图1.1所示:https://developer.apple.com/library/ios/#文档/ NetworkingInternet /概念/ iPhoneOTAConfiguration /简介/ Introduction.html

我们的问题是:在上述文档的第3阶段(设备配置)开始之前,我们的工作正常.但是,当我们查看Web服务器和设备之间的流量时,似乎注册流程执行了两次.根据文档,这些是我们希望看到服务器的调用:

/enroll
/scep?operation=GetCACert&message=EnrollmentCAInstance
/scep?operation=GetCACaps&message=EnrollmentCAInstance
/scep?operation=PKIOperation&message=MII.....AAA
Run Code Online (Sandbox Code Playgroud)

但是,实际上,我们看到调用块一次又一次地执行,看起来是相同的数据.有没有人看过这种行为,是否有望?

一个更紧迫的问题是,在第2阶段执行第3步后,我们将生成的证书传递给设备,该设备已成功安装.但是,根据该文档,此时我们应该从设备返回一个响应,我们可以使用我们想要在设备上设置的设置使用新的配置文件进行回复.但是,即使到目前为止的所有内容都已成功完成,我们也永远不会得到响应.有谁知道为什么没有发送响应,或者那时可能出现什么问题?

提前致谢,

使用iphone配置实用程序检索的设备日志:

<Notice>: (Note ) MC: Profile “com.test.profileservice.scep” queued for installation.
<Notice>: (Note ) MC: Checking for MDM installation...
<Notice>: (Note ) MC: ...finished checking for MDM installation.
<Notice>: (Note ) MC: Enrolling in OTA Profile service...
<Error>: Jan 25 16:34:13  SecTrustEvaluate  [leaf AnchorTrusted]
<Error>: Jan 25 16:34:14  SecTrustEvaluate  [leaf AnchorTrusted]
<Notice>: (Note ) MC: Attempting to retrieve issued certificate...
<Notice>: (Note …
Run Code Online (Sandbox Code Playgroud)

mdm ios provisioning-profile

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

When multiple users on android, is the ANDROID_ID unique for each user?

http://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID

This link says that : When a device has multiple users (available on certain devices running Android 4.2 or higher), each user appears as a completely separate device, so the ANDROID_ID value is unique to each user.

http://developer.android.com/about/versions/android-4.2.html#MultipleUsers While this link says: Beware that if your app requests one of the hardware device identifiers (such as the WiFi MAC address, the SERIAL number, or the ANDROID_ID number), they will provide the same value for each user because these identifiers …

android

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

尚未更改的团队资源管理器中标记为已更改的csproj文件(git)

我正在Visual Studio 2015社区中使用ASP.NET MVC项目,通过Team Explorer中Visual Studio的内置git支持将git用作VCS。

每当我编辑文件时,编辑的文件都会按预期显示在Team Explorer的“更改”列表中,但是网站项目的.csproj文件也会添加到“更改”列表中。请注意,当我仅在项目中编辑文件(例如JavaScript文件)而未对项目本身进行任何更改(例如添加/删除文件)时,就会发生这种情况。

单击全部登台按钮将登台我已更改的文件,而不是.csproj文件。在Beyond Compare中对.csproj文件进行比较发现(如预期的那样)与以前的版本相同。一切都没有改变(甚至行尾类型也没有改变)。

从“更改”列表中清除.csproj文件的唯一方法是右键单击并撤消更改

这不是关键问题,只是令人讨厌。知道为什么会这样以及我如何阻止它吗?

(环境详细信息:Windows 7和Windows 10的Visual Studio 2015社区更新3,ReSharper Ultimate 2016.1.2)

git asp.net-mvc visual-studio visual-studio-2015

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

购买Windows Phone 7手机进行开发时,我应该注意什么?

我想购买一台免费的Windows Phone 7手机用于开发,我想知道是否有任何东西可能使某款手机更适合或不合适.

我知道微软要求为WP7手机提供严格的基础规范.我还为许多其他移动平台开发并意识到选择最新的顶级手机并不能代表整个市场.

我所追求的东西(可能是我对Android的体验所塑造的)是:

  1. 制造商和/或网络运营商是否修改了操作系统固件(就像他们使用Android一样)或者所有设备是否运行基本相同的固件?
  2. 不同的手机如何处理新的固件更新?它是制造商特定的吗?
  3. 是否所有手机都使用Zune软件连接到PC或某些制造商是否要求您使用自己的软件?
  4. Microsoft的基本规范中是否包含其他开发人员建议的用于通用开发的功能?

目前我正在考虑使用HTC Radar,因为它们在英国的价格只有Lumia 800的一半.作为开发人员(而不是用户),我会注意到两者之间存在显着差异吗?

hardware handset windows-phone-7 windows-phone

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