小编Kal*_*ina的帖子

如何在Android屏幕上保存自定义ArrayList旋转?

我有一个ArrayList自定义对象,我希望能够在屏幕上保存和恢复旋转.

我知道,这是可以做到的onSaveInstanceStateonRestoreInstanceState如果我让ArrayList自己的类,它实现了无论是Parcelable还是Serializable......但是,有没有办法做到这一点,而无需创建另一个类?

android arraylist object parcelable screen-rotation

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

我是否正确地验证了用户的Android应用内订阅?

我正在制作一个不需要用户帐户/登录的应用程序,并允许用户购买订阅.我想使用Google Play Developer API来验证用户是否有购买/有效订阅.从所有文档中,我收集了以下步骤.

它们是否正确,您能否回答其中的两个问题?

  1. 在Google API控制台中创建服务帐户.
  2. 保存给我的私钥(其中?肯定不在我的代码/设备上,如此示例代码所示)
  3. 使用Google API Client Library for Java使用私钥创建和签署JWT(文档如何给我这个,但这不是Java代码......我该怎么办?)
  4. 构造访问令牌请求,并获得对API的访问权限
  5. 应用程序现在可以向API 发送GET请求,以确定用户是否具有订阅
  6. 当访问令牌过期时,请返回步骤3.

此外,我有一个Web服务,虽然我对Web服务或Web服务编程一无所知......我只知道它可能需要在这里使用.

编辑:这些步骤不正确.请参阅下面的答案,了解正确的步骤.但请注意,这仅适用于使用服务帐户(因为我不想要求用户必须明确允许API访问)

service android google-api subscription google-play

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

如何从GoogleCredential获取访问令牌?

我正在尝试获取访问令牌以使用Google Play Android Developer API,而且我使用Google API Java客户端文档示例了解到这一点:

HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
JsonFactory JSON_FACTORY = new JacksonFactory();

GoogleCredential credential = new GoogleCredential.Builder()
    .setTransport(HTTP_TRANSPORT)
    .setJsonFactory(JSON_FACTORY)
    .setServiceAccountId("...gserviceaccount.com")
    .setServiceAccountScopes("https://www.googleapis.com/auth/androidpublisher")
    .setServiceAccountPrivateKeyFromP12File(keyFile)
    .build();
Run Code Online (Sandbox Code Playgroud)

但是如何从此凭据获取访问令牌?credential.getAccessToken()回报null.我做错了什么,或者错过了一些步骤?

authorization credentials google-api access-token oauth-2.0

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

.aspx和.aspx.cs有什么区别?

我不是编程新手,但我是Visual Studio,MVC,C#,ASP.NET和EXT.NET的新手,也就是我尝试使用的所有工具.

我正在尝试创建一个Ext.Net 2.0 MVC4项目,并获得了一个类似的(在功能上)非MVC项目供参考.

我看到这个非MVC项目有.aspx和.aspx.cs文件.似乎.aspx文件基本上映射到我想要制作的MVC中的"视图"...而.aspx.cs文件具有与.aspx文件相关的功能 - 所以就像"控制器"一样?虽然.aspx文件也有一些似乎与视图无关的功能......

有人可以给我一个快速的概述或一个地方开始这个?

c# asp.net-mvc ext.net asp.net-mvc-4

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

什么是Android上实时图形编程的最佳语言?

一些谷歌搜索让我相信C++是实时2D图形编程的最佳语言,但由于Android是基于Java的,这仍然是最好的选择吗?或者我们必须使用NDK减速或其他什么事实?我的程序也有很多科学计算,我知道C++最好/最快...

我以前从未对Android做过任何事情,所以我现在真的很无助.如果我只是错误的方式,请给我其他建议...我遇到的其他一些词汇是OpenGL(我有经验,但更多的是3D,对吗?)和Canvas(不要相当得到这个)?如果我能够访问类似GPU的功能,那就太棒了.

c++ graphics performance android 2d

10
推荐指数
2
解决办法
4953
查看次数

MySQL/SQLite/etc数据库之间的区别?

这是我第一次尝试使用数据库,所以请耐心等待.

我需要编写一个程序来使用我还没有访问权限的数据库.我知道有MySQL,SQLite和其他一些SQL东西,但我不确定它们之间的区别是什么.在使用它之前我是否需要知道它是什么类型的数据库(即,是一个与SQLite .db文件不同的MySQL .db文件?),或者文件本身是否相同,区别在于如何它被访问?

编辑:我正在为Android平板电脑编程,这可能很重要.但我不会创建数据库,它将提供给我,我必须使用它.

mysql sql database sqlite android

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

我可以通过移动网站获取Android设备ID吗?

是否可以通过移动网站获取设备的电话ID,MAC地址,序列号和/或Android ID?

也就是说,不是通过可下载的应用程序,而是通过用户在移动设备上的浏览器中访问的链接?

如果是这样,怎么样?

android telephony mac-address uniqueidentifier

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

我是否正确地检查了用户的应用内结算订阅?

我正在制作一款销售应用内每月订阅的Android应用.在我深入研究它之前,这个应该如何做的概述似乎是正确的吗?我使用的是Google Play Android Developer API.

第一次安装应用程序时,请在sendBillingRequest()中发送以下内容:

  • CHECK_BILLING_SUPPORTED.如果没有,不要打扰制作"购买"用户界面.
  • RESTORE_TRANSACTIONS.如果有交易,请保存用户的购买代币.

当用户进行购买时:

  • 保存购买令牌.
  • 将带有购买令牌的GET请求发送到Google Play Developer API以验证订阅.
    • 如果订阅有效,请保存订阅到期和启动日期.提供对购买数据的访问.
    • 如果订阅无效,请删除购买令牌.不提供对购买数据的访问权限并绘制"未购买"版本的UI.

每次启动应用程序时,请检查您是否有已保存的购买令牌.

如果购买令牌不存在:

  • 不提供对购买数据的访问权限并绘制"未购买"版本的UI.

如果存在购买令牌,请检查到期日期和启动时间:

  • 如果(过期)或(启动超过一个月前)
    • 将带有购买令牌的GET请求发送到Google Play Developer API以验证订阅.
    • 如果购买有效,请更新已保存的过期日期和开始日期.提供对购买数据的访问.
    • 如果购买无效,请删除已保存的购买令牌以及过期和启动数据.不提供访问权限并绘制"未购买"版本的UI.
  • 其他
    • 提供对购买数据的访问.

android google-api subscription in-app-billing google-play

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

关于Android公钥的澄清?

我对http://developer.android.com/guide/google/play/billing/billing_integrate.html#billing-signatures的一些建议感到困惑

为了保护您的公钥免受恶意用户和黑客的攻击,请不要将您的公钥嵌入整个文字字符串.相反,在运行时从片段构造字符串或使用位操作(例如,XOR与其他字符串)来隐藏实际的键.密钥本身不是秘密信息,但您不希望黑客或恶意用户轻易用其他密钥替换公钥.

这是否意味着

String one = "thisIs";
String two = "MyKey";
String base64EncodedPublicKey = one + two;
PublicKey key = Security.generatePublicKey(base64EncodedPublicKey);
verified = Security.verify(key, signedData, signature);
Run Code Online (Sandbox Code Playgroud)

比...更安全

String base64EncodedPublicKey = "thisIsMyKey";
PublicKey key = Security.generatePublicKey(base64EncodedPublicKey);
verified = Security.verify(key, signedData, signature);
Run Code Online (Sandbox Code Playgroud)

?如果没有,你能否在代码中给我一个如何做到这一点的例子?

string encryption android in-app-billing google-play

8
推荐指数
1
解决办法
1234
查看次数

如何检查用户是否有订阅(Android应用内结算)?

我一直在尝试使用Google Play Android Developer API,但我意识到这可能不是我应该做的:

您的服务器永远不应根据Android应用程序的个别请求动态查询订阅状态.- 谷歌

我没有自己的服务器,也没有预计每天超过15000个应用程序(API每天允许15000个请求),而且每次启动应用程序时都只计划检查订阅状态.

这似乎是谷歌是说我应该不会做.那么,我该如何检查用户的订阅状态呢?

android google-api subscription in-app-billing google-play

8
推荐指数
1
解决办法
5128
查看次数