Articles of java的

为什么远程服务器上的签名validation比在设备上更安全?

应用内结算概述中的安全控制部分指示在远程服务器而不是在应用中执行“签名validation”(在Android设备上本地运行): 通过执行签名validation,您可以帮助检测已被篡改或已被欺骗的响应。 您可以在应用程序中执行此签名validation步骤; 但是,如果您的应用程序连接到安全的远程服务器,那么我们建议您在该服务器上执行签名validation 。 但是,如果我在远程服务器上执行签名validation,只期望yes/no或true/false答案,这实际上是不是更容易被攻击者拦截和修改? 如果来自远程服务器的答案是另一个签名,那么如何在设备上本地validation第二个签名比第一个(市场)签名更安全? 我错过了什么? 更新: @alf正确地指出,如果服务器还负责提供购买的内容并且在服务器上执行签名validation,那么即使攻击者破坏了应用程序,服务器也不会提供通过应用程序内计费购买的内容。 这是微不足道的,也很好理解。 我最初没有提到的是,我实际上指的是服务器不提供任何内容而只是validation签名的情况,以便应用程序可以决定是否解锁某些function 。 在这种情况下,远程服务器签名validation优于应用程序内的优势是什么?

无法使用robotium和私有方法在android上截取屏幕截图

我最近一直试图获取截图,但是每个东西都是徒劳的,文件夹是在api level 8的android模拟器中创建的。我已经提到了下面的代码。 在此代码中,方法takeScreenShot()应该创建一个目录并在执行时作为android junit testcase存储图像我得到100%的结果但不是文件夹没有创建并且没有存储屏幕截图。 我应该根据我的手机使用其SD卡吗? public class NewRobotiumTest extends ActivityInstrumentationTestCase2 { …… …… // actual testcase public void testRecorded() throws Exception { solo.waitForActivity(“com.botskool.DialogBox.DialogBox”, ACTIVITY_WAIT_MILLIS); solo.clickOnButton(“Show Alert”); solo.clickOnButton(“Ok”); solo.clickOnButton(“Show Yes/No”); takeScreenShot(solo.getViews().get(0), “testRecorded_1316975601089”); solo.sleep(2000); solo.clickOnButton(“Yes”); solo.clickOnButton(“Show List”); solo.clickOnScreen(118f, 563f); } /** * I have added this to the android-manifest.xml file * * * */ public […]

连接到Socket锁定UI

我正在构建(好吧,试图构建)一个简单的usenet新闻阅读器。 以下代码有效。 从SharedPreferences获取用户名,主机,密码并连接到服务器并成功进行身份validation,但是它会锁定UI,直到完成所有任务。 我如何更改此代码以便它不会锁定UI? package com.webfoo.newz; import java.io.IOException; import java.net.SocketException; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.widget.TextView; import org.apache.commons.net.nntp.NNTPClient; public class NewzActivity extends Activity { TextView statusText; String PREFS_NAME = “MyPrefsFile”; SharedPreferences settings; NNTPClient nntpClient; int port; String username; String password; String host; /** Called when the activity is first […]

使用ActionBarSherlock 4.1.0时资源文件中的错误

我在Eclipse中成功编译了ActionBarSherlock。 但是当我在一个新项目中使用它时,我得到了75个错误: abs4.1.0\library\res\values-v14\abs__styles.xml:4: error: Error retrieving parent for item: No resource found that matches the given name ‘android:Widget.Holo.ActionBar’. abs4.1.0\library\res\values-v14\abs__styles.xml:6: error: Error retrieving parent for item: No resource found that matches the given name ‘android:Widget.Holo.ActionBar.Solid’. abs4.1.0\library\res\values-v14\abs__styles.xml:8: error: Error retrieving parent for item: No resource found that matches the given name ‘android:Widget.Holo.Light.ActionBar’. abs4.1.0\library\res\values-v14\abs__styles.xml:10: error: Error retrieving parent […]

使用SQLite和Group By坚持使用android SQL设计

有以下问题:尝试从表中显示与会者列表。 表A是通过将来自Web源(HTML抓取)的数据“同步”到表A中生成的。 表A. 列:eventID,userID,userName 数据: 1,111,哈利 2,252,本 3,534,海伦 海伦,2,543,海伦 詹姆斯,2,545 最终结果 我试图在活动中显示如下: 社交1:出席者:哈利 社交2:出席者:Ben,Helen,James 社交3:出席者:海伦 最好的方法是怎样做的? 我的初步计划: 1)在表A的eventID上运行带有Group By的SQL select(Query1)。 2)循环执行步骤1中的每个结果。 3)对于查询1的每个结果结果,选择tableA中所有具有当前eventID的行(Called Query 2) 4)循环执行步骤3查询2的结果,并为每个结果将用户名添加到字符串缓冲区。 在查询2结果的末尾,将eventID与生成的StringBuffer一起插入到新表中: 表B: columns:eventID,userName 数据: 1,“哈利” 2,“本,海伦,詹姆斯” 3,“海伦” 然后使用表B中的数据和SimpleCursorAdapter,使用数据填充标准ListActivity,生成所有事件的列表,以及逗号分隔的与会者列表。 然后每次重新生成表A时,清除表B中的数据,并重新填充它。 题: 这是最好的方式/最好吗? 我真的不喜欢有一个临时表来做这件事。 背景:我是Android开发人员的新手,并且自从几年前在大学工作以来刚刚再次开始使用Java。 我在编程方面的优势在于HTML,PHP,MySQL。 额外信息:为表A收集数据的方式是,页面被抓取,其中包含特定用户的所有事件。 然后我的目标是以相反的方式显示这一点,通过显示每个事件,所有参加的用户。 我很感激有关如何实现这一目标的一些帮助/意见。 非常感谢!

呼叫录音,呼叫多个(重复)电话阶段并创建多个音频文件

我创建了一个服务和广播接收器来获得电话状态。 以下是我的代码: @Override public int onStartCommand(Intent intent, int flags, int startId) { final IntentFilter filter = new IntentFilter(); filter.addAction(ACTION_OUT); filter.addAction(ACTION_IN); if (br_call == null) { br_call = new CallBr(); registerReceiver(br_call, filter); } return super.onStartCommand(intent, flags, startId); } public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(ACTION_IN)) { if ((bundle = intent.getExtras()) != null) { state […]

如何编写“权力”和一些文字,如Java或Android所示?

如下图所示,是否可以编写代码来编写Android或Java中的“权力”?

Android Google Maps API无法与debug.keystore一起使用

我试图按照Android网站上的教程创建一个MapView应用程序。 我已经设置了一切,地图显示但是空的瓷砖! 我正在使用的API密钥是从位于“C:\ Users \ Pete \ .android”中的debug.keystore生成的,并且所有正确的权限都在清单中设置。 地图库也在清单中,但仍然不起作用。 我尝试创建一个新的调试密钥库并将其放在同一个文件夹中(显然也生成一个新的API密钥),但仍然没有运气。 (30/05/2011)编辑: 的Manifest.xml layout.xml Home.xml package com.stringerapps.testing.gps; import java.util.List; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.widget.LinearLayout; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapActivity; import com.google.android.maps.MapView; import com.google.android.maps.Overlay; import com.google.android.maps.OverlayItem; public class Home extends MapActivity { LinearLayout linearLayout; MapView mapView; List mapOverlays; Drawable drawable; MyItemizedOverlay itemizedOverlay; /** Called when the activity […]

your.package.namespace – 它应该改成什么?

我正在尝试在eclipse中为Android应用程序创建一个新项目,我将在对话框中输入一些东西,我只是想知道你的.package.namespace是什么以及我要在这里写些什么? 谢谢!

我的Android清单在更新到Android 3.0.0后出现错误

在更新到Android 3.0.0并将gradle更新到4.1后,我严重陷入困境。 我的应用程序没有构建,清单包含很多错误。 我尝试在Build下清理项目,在Files下无效缓存/重启,但没有成功。 我收到的错误如下: 错误:(52)错误:find未知元素。 错误:(52)find未知元素。 错误:java.util.concurrent.ExecutionException:java.util.concurrent.ExecutionException:com.android.tools.aapt2.Aapt2Exception:AAPT2错误:检查日志以获取详细信息 错误:java.util.concurrent.ExecutionException:com.android.tools.aapt2.Aapt2Exception:AAPT2错误:检查日志以获取详细信息 错误:com.android.tools.aapt2.Aapt2Exception:AAPT2错误:检查日志以获取详细信息 错误:任务’:app:processDebugResources’的执行失败。 无法执行aapt 所有错误都在debug\AndroidManifest 。 当我删除或评论标记的活动时,它们会被添加回gradle构建, 我也得到了一个’URI not registrered error with android=”http://schemas.android.com/apk/res/android” ‘ 表现: //Hardware Constraints for Application <!– –> //Required App Permissions <!– –> <!– –> <!– –>