天道酬勤,学无止境

我可以在没有任何 API 的情况下通过 Android 应用程序执行此代码吗?(Can I execute this code through an Android app without any API's?)

问题

我正在开发一个 android 应用程序,并计划向 youtube 和 Spotify 等网站发出请求。 当我通过 Eclipse 运行此代码时,我得到了我想要的响应。 如果我将此代码转换为 android 应用程序,我是否仍然能够生成相同的结果,或者我是否需要 youtube 和 Spotify 的 API 才能这样做?

这是我用来获取 Spotify 歌曲链接并从中提取歌曲名称的代码。 我不想将 Spotify API 用于这样的基本功能。 如果我将代码放入应用程序中,我是否仍然能够发出 get 请求并获取必要的信息?

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.*;

public class SpotAlgo {
String vidLink;
int linkLoc;
String testString = "<title>";
String result;


public String gettheResult(String v) throws Exception{
    String sname = "";
    vidLink = "https://open.spotify.com/track/6b8Be6ljOzmkOmFslEb23P";

    URL obj = new URL(vidLink);
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    con.connect();
    BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
    String inputLine = "";
    StringBuffer response = new StringBuffer();

    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();

    result = response.toString();


    linkLoc = result.indexOf(testString) + testString.length();
    for (int i = linkLoc; i < result.indexOf("on Spotify"); i++) {
        sname += result.charAt(i) + "";
    }
    return sname;
}

}

回答1

您使用的 Java 库都在 Android 中受支持。 它应该在技术方面起作用,因为它以前对我有用。 但是,您应该检查服务 TOS 以确保它在他们的规则范围内。

标签

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 流行的应用程序如何验证用户请求从移动应用程序到服务器的身份?(How do popular apps authenticate user requests from their mobile app to their server?)
    问题 假设我有一个连接到.Net API的Android应用程序,用于接收/设置数据。 我的困惑在于,如何在用户每次向API发出请求时,如何首次注册/登录并对其进行身份验证。 如果我仅使用基于用户名/密码的身份验证,它们将不够安全吗? 当然,出于安全原因,我无法将该用户名/密码保存在设备中? 我应该在注册时为每个用户发布一个GUID,将其保存在他们的设备中,并在API请求期间每次进行检索吗? 还有哪些其他可用模式,哪些是最有效和最安全的,我只需要一个流程即可。 有人可以告诉我著名的android应用程序(例如Facebook,FourSquare或Twitter)使用什么方法来验证从移动应用程序到服务器的每个请求吗? 抱歉,如果这不是一些公共信息。 回答1 我想象他们使用基于“令牌”的安全系统,因此密码实际上永远不会存储在任何地方,只是在第一次进行身份验证时使用。 因此,该应用最初会通过ssl发布用户名/密码,然后服务器会返回该应用存储的令牌。 对于随后的同步尝试,首先发送令牌,服务器检查它是否有效,然后允许发布其他数据。 令牌应有一个有效期,以便服务器可以重新请求身份验证尝试。 如果您从Android框架中连接到同步适配器,则可以在后台进行同步和身份验证。 http://developer.android.com/training/sync-adapters/creating
  • Android平台中的Service vs IntentService(Service vs IntentService in the Android platform)
    问题 我正在寻找一个示例,该示例可以通过IntentService来完成,而IntentService Service来完成(反之亦然)? 我也相信IntentService在不同的线程中运行,而Service不在。 因此,据我所知,在自己的线程中启动服务就像启动IntentService 。 那是对的吗? 回答1 Tejas Lagvankar就此主题写了一篇不错的文章。 以下是Service和IntentService之间的一些主要区别。 什么时候使用? 该服务可以在没有UI的任务中使用,但不应太长。 如果需要执行较长的任务,则必须使用Service中的线程。 IntentService可以用于长任务,通常不与主线程通信。 如果需要通信,则可以使用主线程处理程序或广播意图。 另一个使用情况是需要回调(意图触发的任务)时。 如何触发? 通过调用方法startService()触发服务。 IntentService是使用Intent触发的,它产生一个新的工作线程,并在该线程上调用onHandleIntent()方法。 触发自 可以从任何线程,活动或其他应用程序组件触发Service和IntentService 。 运行 该服务在后台运行,但在应用程序的主线程上运行。 IntentService在单独的工作线程上运行。 局限性/缺点 服务可能会阻止应用程序的主线程。
  • 影响Android多个高权限服务的严重漏洞详情披露(CVE-2018-9411)
    影响Android多个高权限服务的严重漏洞详情披露(CVE-2018-9411) lucywang 嘶吼专业版 0x00 前言 媒体框架是安卓系统组件中经常被发现安全漏洞的组件,所以每次谷歌发布月度例行更新时经常会有它的身影。Google最近发现的媒体框架的漏洞是远程代码执行漏洞,***者可以制作特定的文件利用特权进程执行任意代码。目前Google已将其命名为CVE-2018-9411,危险等级定位危急,并在7月安全更新(2018-07-01补丁)中对其进行了修补,包括9月安全更新(2018-09-01补丁)中的一些附加补丁。 我还为此漏洞编写了一个概念验证利用,演示了如何使用它来从常规非特权应用程序的上下文中提升权限。 本文,我将介绍该漏洞和利用此漏洞的技术细节。首先我将介绍与漏洞相关的一些背景信息,然后再详细介绍漏洞本身。在介绍如何利用此漏洞的过程中,我将选择一个特定服务作为***目标,而不是受漏洞影响的其他服务。另外,我还将分析与漏洞相关的一些服务。最后,我将介绍我编写的概念验证漏洞利用的详细信息。 Project Treble 什么是Project Treble?简单的说就是谷歌为了整理安卓的碎片化,为了让手机厂商适配安卓版本更轻松,推出的新架构。 Project Treble对Android内部运作方式进行了大量更改,其中的一个巨大的变化是许多系统服务的分离。以前
  • Android AccountManager 不应该基于每个应用程序/UID 存储 OAuth 令牌吗?(Shouldn't Android AccountManager Store OAuth Tokens on a Per-App/UID Basis?)
    问题 Android 的 AccountManager 似乎为具有不同 UID 的应用程序获取相同的缓存身份验证令牌 - 这是否安全? 它似乎与 OAuth2 不兼容,因为不应在不同客户端之间共享访问令牌。 背景/上下文 我正在构建一个 Android 应用程序,它使用 OAuth2 对我的服务器的 REST API 请求进行身份验证/授权,这是一个 OAuth2 提供程序。 由于该应用程序是“官方”应用程序(与第 3 方应用程序相反),因此被视为受信任的 OAuth2 客户端,因此我使用资源所有者密码流程来获取 OAuth2 令牌:用户(资源所有者)将他的用户名/密码输入应用程序,然后将其客户端 ID 和客户端密码以及用户凭据发送到我服务器的 OAuth2 令牌端点,以换取可用于进行 API 调用的访问令牌,以及一个长 -用于在过期时获取新访问令牌的实时刷新令牌。 理由是将刷新令牌存储在设备上比用户密码更安全。 我正在使用 AccountManager 来管理设备上的帐户和关联的访问令牌。 由于我提供自己的 OAuth2 提供程序,因此我通过扩展 AbstractAccountAuthenticator 和其他必需组件创建了自己的自定义帐户类型,如本 Android 开发指南中所述并在 SampleSyncAdapter 示例项目中演示。
  • 正在获取异常“ IllegalStateException:在onSaveInstanceState之后无法执行此操作”(getting exception “IllegalStateException: Can not perform this action after onSaveInstanceState”)
    问题 我有一个Live Android应用程序,从市场上我收到了以下堆栈跟踪信息,我不知道为什么它发生在应用程序代码中而不是发生,而是由应用程序中的某些或其他事件引起(假设) 我没有使用Fragments,但仍然有FragmentManager的引用。 如果有人可以对某些隐藏的事实有所了解以避免此类问题: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1109) at android.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:399) at android.app.Activity.onBackPressed(Activity.java:2066) at android.app.Activity.onKeyDown(Activity.java:1962) at android.view.KeyEvent.dispatch(KeyEvent.java:2482) at android.app.Activity
  • 如何管理从 PHP 移动应用程序登录的用户的会话?(How to manage session for a user logged in from mobile app in PHP?)
    问题 我的职业是PHP 程序员。 所以,我对 iOS 和 Android 编码一无所知。 场景是有一个使用名为“PHPFox”的社交网络 PHP 软件开发的网站。 现在有两个类似的移动应用程序完全复制了该网站的功能。 一个移动应用程序在 iOS 中,另一个在 Android 中。 因此,我编写了一组 RESTful API,其中我接受来自移动应用程序的请求,解析请求,将请求参数传递给为网站执行相同工作的函数,从该函数获取响应,将其转换转换成 JSON 格式并将其发送回移动应用程序。 对于 iOS 和 Android 应用程序,我使用相同的一组 REST API 文件。 当用户登录时,用于登录的 REST API 被调用。 最终调用用于身份验证的 PHPFox 函数,生成一个安全令牌以及一些其他用户数据。 每次登录时,PHPFox 都会生成不同的安全令牌。 该数据被设置到会话中。 现在,每次我通过任何 REST API 文件调用任何函数时,都会验证登录时生成的安全令牌,并且只有在成功验证令牌后才会调用 PHPFox 函数。 此验证过程由 PHPFox 内部完成。 因此,无需将安全令牌显式或隐式传递给任何REST API调用。 直到现在一切都很好。 我的怀疑从这里开始。 我不知道该会话是否在 iOS/Android 应用程序中维护。 那么,如果服务器上的会话,即 PHPFox 超时
  • 在后台将数据从 Android 设备发送到服务器,对用户的影响最小(Sending data from Android device to server in the background with minimal user impact)
    问题 我有一个应用程序可以生成最终需要发送到我的服务器的数据(几个小时的延迟根本没有问题)。 我想在对用户影响最小的情况下做到这一点,这对我来说意味着: 最少的电池使用没有额外的权限,尤其是没有“粗略”的权限系统没有其他奇怪的变化(见后面的例子) 到目前为止,我发现了三种方法,它们都有一些严重的问题: 使用由网络消息触发的 SyncAdapter: 从技术上讲,这听起来像是问题的完美答案:让系统在我的应用程序中调用服务,无论何时它在网络上执行某些操作。 这样,网络就可以保证可用,几乎没有任何额外的电池使用,因为收音机已经打开了,整个事情都发生在后台...... 然后我尝试实际实施它...... 不幸的是,这种方法需要对系统进行一些奇怪的修改:我的应用程序需要为同步过程创建一个新的虚拟帐户,即使我的应用程序不使用任何帐户。 不幸的是,这个帐户不能对用户隐藏,所以现在当用户在系统设置中单击“添加帐户”时我的应用程序会列出,但在应用程序内部,任何地方都没有用户帐户的指示......另外,我需要请求各种奇怪的权限,例如“创建帐户和设置密码”、“打开和关闭同步”和“读取同步设置”。 为什么一个甚至不向我提供用户帐户的应用程序需要在我的设备上设置密码的权限??? 不爽...删除!!! 使用 BroadcastReceiver 并在它触发时检查连接: 这需要“查看网络连接”甚至可能“查看有关
  • Android Eclipse-找不到* .apk(Android Eclipse - Could not find *.apk)
    问题 我知道这个问题以前曾被问过,我已经看到了很多解决方案,但似乎没有一个对我有用。 在此错误开始出现之前,我能够毫无问题地构建我的apk。 我试过清理我的项目,将其从工作区中删除并重新导入,从我的Builders中删除该项目的“ Java Builder”,手动构建项目,重新排序Java构建路径。 我没有可见的编译器问题,而且我的工作区中没有问题。 我以前确实曾遇到过此问题,并通过从我的工作空间中删除项目并重新导入来解决了该问题,而另一次我是通过从Java构建路径中删除“ Java Builder”来解决的。 这次似乎没有任何工作。 我目前已将大多数设置恢复为默认设置(即再次检查Java构建)。 我正在运行Windows 7(64位),并通过Eclipse 3.6使用jdk1.6.0_21。 任何建议将不胜感激,因为我已经浪费了很多开发时间来解决此问题。 [更新]我的语言环境为英语,并且我尝试删除与问题834相关的美国debug.keystore 回答1 请按照以下步骤操作; 这可能会帮助您: 右键单击您的应用程序项目,然后转到“属性” 从左侧列表中选择Android 取消选中“是库”复选框 如果您的应用程序项目依赖于工作空间中的库项目,那么那些项目当然需要选中“是库”框。 回答2 删除/ Gen文件夹中的R.Java文件对我有用 回答3 我尝试了上述所有解决方案。 但这没用。
  • Android Studio-未连接互联网的Android模拟器Wifi(Android Studio - Android Emulator Wifi Connected with No Internet)
    问题 我浪费了一整天的时间来尝试在SO和提到的其他地方浮动的不同解决方案,以在android仿真器上启用wifi,但无济于事。 有人可以帮我弄清楚如何在Android模拟器上启用互联网吗? 我有Nexus 5X API 27,目标是Android 8.1(Google Play),而Nexus 5 API P,目标是Android 7.1.1。 我相信应该有一种方法可以在其上启用Internet,否则在模拟器上提供虚拟wifi的整个点似乎是浪费的。 我在没有代理的情况下直接连接到路由器的mac OS HS 10.13.4上。 我什至尝试删除所有AVD,然后重新安装它们。 我什至尝试在Oreo Android 8.1上安装最新的Pixel 2 似乎没有任何作用。 有没有人遇到这个问题并找到解决方案? 任何帮助都会有很大帮助 谢谢,维克拉姆 更新:当我通过手机将计算机连接为热点wifi时,仿真器通过wifi进行了互联网连接,但是当我将计算机连接到家庭路由器时,仿真器将失败。 回答1 下面说明的是适用于Windows和Mac的解决方案,但是类似的解决方案也可以在任何操作系统上使用: 在Windows上打开网络和共享中心,然后单击当前连接点击属性双击Internet协议版本4(TCP / IPv4) 将首选和备用DNS服务器设置为(如下屏幕截图): 8.8.8.8 8.8.4.4
  • 电晕,Phonegap,钛之间的比较(Comparison between Corona, Phonegap, Titanium)
    问题 已锁定。 该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。 它目前不接受新的答案或互动。 我是一名网络开发人员,我想将我的网络产品迁移到iPhone。 其中一种产品类似于Google Maps:在手机屏幕上显示地图,您可以拖动或调整地图大小并查看我们添加到地图中的一些信息。 我知道有一些技术可以使您使用HTML,CSS和Javascript开发本机iPhone应用程序。 我确定了一些: 安斯卡手机电话间隙加速器 还有其他类似的产品吗? 它们之间有什么区别? 我应该选择哪一个? 回答1 我在stackoverflow上注册只是为了评论顶部投票最多的答案。 不好的是stackoverflow不允许新成员发表评论。 因此,我必须使此评论更像是一个答案。 罗里·布莱斯(Rory Blyth)的答案包含有关两个javascript移动框架的一些有效观点。 但是,他的要点是不正确的。 事实是Titanium和PhoneGap相似而不是不同。 它们都通过一组javascript API公开了手机功能,并且应用程序的逻辑(html,css,javascript)在本机WebView控件中运行。 PhoneGap不仅仅是Web应用程序的本机包装。 通过PhoneGap javascript API,“网络应用”可以访问手机功能,例如地理位置,加速度计摄像头,联系人,数据库,文件系统等
  • APP_PLATFORM,android:minSdkVersion和android:targetSdkVersion之间是什么关系?(What is the relation between APP_PLATFORM, android:minSdkVersion and android:targetSdkVersion?)
    问题 我正在开发使用NDK功能的Android应用程序。 我的应用在AndroidManifest.xml定义了android:minSdkVersion和android:targetSdkVersion ,在jni / Application.mk中定义了APP_PLATFORM 。 我目前的理解是android:minSdkVersion降低了支持的最低操作系统版本, android:targetSdkVersion声明了要链接的Java库版本, APP_PLATFORM声明了要链接的C ++库。 两个问题: 我的理解正确吗? 可以让APP_PLATFORM大于android:minSdkVersion吗? 还是他们必须彼此平等? 我提出问题的原因:我希望我的应用程序可用于API> = 10的设备,但我需要使用NDK中的platforms\android-13文件夹中定义的NDK函数(例如AMotionEvent_getAxisValue )。 所以我使用android:minSdkVersion=10和APP_PLATFORM=13 。 项目可以成功编译,但是可以在API 10-12设备上运行吗? 回答1 android:minSdkVersion是您的应用程序期望的最低操作系统版本。 android
  • 该应用程序可能在其主线程上做过多的工作(The application may be doing too much work on its main thread)
    问题 我是Android SDK / API环境的新手。 这是我第一次尝试绘制图表。 我尝试使用3个不同的免费库在模拟器上运行各种示例代码,但布局屏幕上没有任何显示。 logcat重复以下消息: W/Trace(1378): Unexpected value from nativeGetEnabledTags: 0 I/Choreographer(1378): Skipped 55 frames! The application may be doing too much work on its main thread. 当我运行与许可库的评估副本有关的示例代码时,问题仍然存在,并且图表起作用了。 回答1 摘自: Android UI:修复跳过的帧 任何开始开发android应用程序的人都会在logcat “ Choreographer(abc):跳过xx帧! 该应用程序可能在其主线程上做过多的工作。” 因此,这实际上意味着什么,为什么要关注您以及如何解决它。 这意味着您的代码需要花费很长时间来处理,因此帧被跳过,这可能是因为您在应用程序或数据库访问的核心处进行的繁重处理或任何其他导致线程执行错误的操作停一会儿。 这是更详细的说明: Choreographer允许应用程序将其自身连接到vsync,并适当安排时间以提高性能。
  • 如何在未经root许可的情况下以编程方式获取其他应用的屏幕截图,例如Screenshot UX Trial?(How to take a screenshot of other app programmatically without root permission, like Screenshot UX Trial?)
    问题 如何在没有root许可的情况下以编程方式获取其他应用的屏幕截图,例如Screenshot UX Trial? 我知道我可以在应用程序中捕获根视图的位图。 但是当我的应用程序在后台运行时,我无法获得其他应用程序的根视图bitmap = Bitmap.createBitmap(rootview.getDrawingCache()); 清单中有捕获当前帧缓冲区的权限: android.permission.READ_FRAME_BUFFER 。 但是一些网站说它仅用于签名应用程序。 检查Android权限-保护级别 在尝试了Screenshot UX Trial之后,我阅读了权限: INTERNET:用于连接到本地电话的localhost屏幕快照服务器。 SYSTEM_ALERT_WINDOW:用于最上方的摄像头按钮。 振动:振动反馈。 WRITE_EXTERNAL_STORAGE:保存屏幕截图。 GET_TASKS:用于检测非rooted&non preloaded捕获方法的前台开发设置活动。 似乎SYSTEM_ALERT_WINDOW或GET_TASKS允许该应用截屏。 我对它的工作原理有两个猜测: 这可能是能够访问Activity的前台活动的,它得到的根视图Activity ,捕捉它的屏幕截图。 调用glreadpixels 如果您尝试我的猜测之一,请让我知道结果。 回答1
  • Visual Studio 2015安装程序在安装过程中挂起?(Visual Studio 2015 installer hangs during install?)
    问题 我下载了Visual Studio Ultimate CTP 6的完整ISO。安装程序达到进度的90%,并停留在进度条上。 Superfetch,反恶意软件防护和其他后台进程经常进行活动,但是进度条仍然停滞不前。 最终,后台任务活动在20分钟后消失了,但是进度条仍然不会消失。 便宜的技巧:打开一个记事本窗口并将其左边缘定位,以便完美地标记进度条的当前位置。 如果进度条在大约一个小时内没有移过记事本窗口的左边缘,则可能是卡住了。 回答1 这是一个子安装程序在安装过程中卡住而无法完成的情况。 不幸的是,发生这种情况时,主安装程序似乎永远不会使操作超时。 诀窍是在详细信息模式下打开任务管理器,并寻找一个子安装程序进程,该进程显示0%CPU使用率和0%磁盘使用率,指示已死。 然后,只需终止该过程,主安装程序便会恢复。 在我的情况下,子安装程序的名称为SecondaryInstaller.exe ,根据安装日志,它在尝试为跨平台开发模块安装一些Android SDK组件时发生了该情况。 它已经永久冻结了。 我杀了它,并且主安装程序完成了。 当我运行Visual Studio时,这很好,尽管我猜测我将不得不对Android组件的安装问题进行一些研究。 回答2 我暂时禁用了防病毒(AVG)并重新启动了安装。 这样就解决了。 回答3 当前版本的AVG Free防病毒软件与Microsoft
  • 退出应用程序会感到皱眉吗?(Is quitting an application frowned upon?)
    问题 继续尝试学习Android,我读了以下内容: 问题: 答:(Roman Guy): 呵呵,我在Android世界中迈出的每一步都会遇到某种问题=( 显然,您无法在Android中退出应用程序(但是Android系统可以在需要时完全销毁您的应用程序)。 那是怎么回事? 我开始认为不可能编写一个功能像“普通应用程序”的应用程序-用户可以在决定退出应用程序时退出该应用程序。 那不是应该依靠操作系统来做的事情。 我尝试创建的应用程序不是适用于Android Market的应用程序。 它不是公众“广泛使用”的应用程序,而是将在非常狭窄的业务领域中使用的商业应用程序。 实际上,我真的很期待开发Android平台,因为它解决了Windows Mobile和.NET中存在的许多问题。 但是,上周对我来说是个休假……我希望我不必放弃Android,但现在看起来还不太好=( 我有办法真正退出该应用程序吗? 回答1 这最终将解决您的问题,但是我首先想解决您在撰写本文时已经给出的各种答案的各种评论中提出的一些问题。 我无意改变您的想法-相反,这些是供将来阅读此帖子的其他人使用的。 关键是我不能允许Android确定何时终止我的应用程序。 那必须是用户的选择。 数以百万计的人对环境根据需要关闭应用程序的模型感到非常满意。 这些用户根本不会考虑“终止” Android应用程序,而只是考虑“终止”网页或
  • 此Google Play APK发布错误消息是什么意思?(What does this Google Play APK publish error message mean?)
    问题 我正在尝试将新版本的Android应用发布到Google Play并出现以下错误? 由于以下原因,无法发布此配置:版本1未提供给任何设备配置:可能收到版本1的所有设备都将收到版本4。 我不明白这是什么意思? 回答1 当我在很短的时间内发布两个APK(版本3和版本4)时,发生了这种情况。 在版本3旁边的下拉列表中单击“停用”似乎可以修复该问题。 我的猜测是,这是一条措辞很差的错误消息,意味着“您的原始APK尚未发布到所有更新服务器,因此其中一些可能会完全错过该版本”。 但这有点猜测。 回答2 由于某些原因,当您上传新APK而没有立即点击“发布”(您可能是第一次单击“保存草稿”)时, Google认为您希望同时发布两个APK 。 当您有多个APK用于不同的配置时(例如,适用于android 2.x的版本和适用于3+的另一个版本,或适用于平板电脑的版本和适用于手机的另一个版本等),通常需要执行此操作 但是,根据您的情况,您只是上传一个升级,并希望它替换您以前的APK。 解决: 单击右上角的切换到高级模式点击操作->在旧APK上移动,然后选择“停用” 错误应该消失了,您应该在“ OTHER APKS”中看到旧的apk,并且准备发布新的apk。 只需单击“发布”以使更改生效,然后等待它们传播。 Google警告有误导性。 希望这可以澄清它。 回答3 我已经用我的应用程序解决了同样的问题
  • 将API请求限制为仅我自己的移动应用(Restrict API requests to only my own mobile app)
    问题 有什么方法可以将仅对来自我自己的移动应用程序二进制文件的请求的发布请求限制为我的REST API吗? 该应用程序将在Google Play和Apple App Store上分发,因此应暗示有人可以访问其二进制文件并尝试对其进行反向工程。 我在考虑涉及应用程序签名的问题,因为每个发布的应用程序都必须以某种方式进行签名,但是我无法弄清楚如何以安全的方式进行签名。 也许是获得应用程序签名,加上基于时间的哈希值,加上应用程序生成的密钥对以及虽然晦涩难懂却又具有良好的旧安全性的组合? 我正在寻找尽可能的失败证明。 原因是因为我需要根据电话传感器收集的数据将数据传递到应用程序,并且如果人们可以冒充我自己的应用程序并将数据发送到未经我自己的算法处理的api,它就会失败目的。 我愿意接受任何有效的解决方案,无论多么复杂。 锡箔帽解决方案受到高度赞赏。 回答1 用户可以公开存储在应用程序中的所有凭据。 对于Android,它们可以完全反编译您的应用并轻松检索它们。 如果与服务器的连接未使用SSL,则可以很容易地将它们从网络上侦听。 认真地说,任何想要凭据的人都会得到它们,因此不必担心隐藏它们。 本质上,您有一个公共API。 有一些陷阱,需要花费额外的时间来管理公共API。 许多公共API仍按IP地址进行跟踪,并实施tarpit来简单地减慢来自似乎正在滥用系统的任何IP地址的请求。 这样
  • 如何在Android中声明全局变量?(How to declare global variables in Android?)
    问题 我正在创建一个需要登录的应用程序。 我创建了main和login活动。 在主要活动onCreate方法中,我添加了以下条件: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ... loadSettings(); if(strSessionString == null) { login(); } ... } 登录表单终止时执行的onActivityResult方法如下所示: @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch(requestCode) { case(SHOW_SUBACTICITY_LOGIN): { if(resultCode == Activity.RESULT_OK) { strSessionString = data.getStringExtra(Login.SESSIONSTRING); connectionAvailable
  • Android硬件加速-使用还是不使用?(Android Hardware Acceleration - to use or not to use?)
    问题 我正在开发一个应用程序,其功能与Facebook Android本机应用程序非常相似:社交网络,大多数情况下,用户将花费在无尽的ListView上,以显示大量图像,进入图像库等。 让我们说说我正在做所有正确的事情,并采取了最佳的Android实践来实现平滑滚动(按需回收视图,在需要时使用不同的视图类型,仅将所需大小的缩放位图加载到内存中,缓存位图,使用ViewHolder设计模式,在可能时不阻塞UI线程,依此类推...) 我们还要说,我的应用程序中的其他所有内容均以最佳方式并遵循最佳做法编写(用于讨论...:->) 我的应用程序在那个阶段的运行情况还不错,但是如Android Developers文档中所述和承诺的那样,在开启硬件加速时,它使我的应用程序更加流畅,快速。 假设它不会对UI产生任何负面影响,而且我没有执行任何不受支持的操作 根据有关该主题的Google文档,我能看到不使用此功能的唯一原因(除了上面已经提到的所有其他原因)是,它可能导致我的应用使用更多的RAM。 但是多少RAM? 多很多? 我知道当我的应用程序消耗大量RAM时-当它需要释放一些内存时,它很可能被操作系统破坏。 我的问题基本上是- 在我的情况下可以使用此功能吗? 使用它还会带来什么其他问题? TIA 回答1 使用或不使用 仅当您具有用于缩放,旋转和平移图像的复杂自定义计算
  • 我什么时候需要 android.hardware.location.gps 和 android.hardware.location.network?(When do I need android.hardware.location.gps and android.hardware.location.network?)
    问题 Google 正在通过电子邮件通知 Android 位置权限的更改: 我们将在 2016 年 10 月 15 日进行更改,这将影响面向 API 版本 21(Android 5.0、Lollipop)或更高版本的应用,这些应用使用 ACCESS_FINE_LOCATION 但没有明确具有“android.hardware.location.gps”使用功能。 展望未来,这些应用程序将可以安装在没有 GPS 硬件的设备上。 在大多数情况下,这不会成为问题,因为基于 Wi-Fi 和 Cell-ID 的位置为这些应用程序的典型操作提供了足够高的保真度。 但是,任何需要 GPS 硬件的应用程序(例如 GPS 导航器)都应在其清单中明确添加“android.hardware.location.gps”使用功能。 如果您的应用需要 GPS 才能正常运行,而您未将其包含在清单声明中,则您的用户的应用体验可能会很差。 此外,如果您正在使用融合位置提供程序并希望从 GPS 接收最准确的位置样本(即使用 PRIORITY_HIGH_ACCURACY),您必须在应用的清单中包含“android.hardware.location.gps”功能,以确保 Google Play 只会将您的应用分发给带有 GPS 传感器的设备。 您可以在 Android 开发者帮助中心阅读有关此更改的更多信息。 来自