相关疑难解决方法(0)

应用于特定的独特设备

有没有办法为特定的独特设备构建应用程序?假设我有一个Android设备,我想只为该设备创建一个apk文件,那个apk不能安装在任何其他设备上,是否可能?

android

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

如何获得Android设备唯一ID?

可能重复:
是否有唯一的Android设备ID?

我使用下面的代码来获取Android设备IMEI,我如何更改下面的代码来获取Android设备唯一ID.

String getDeviceID1(TelephonyManager phonyManager){
    String id = phonyManager.getDeviceId();
    if (id == null){
        id = "not available";
    }
    int phoneType = phonyManager.getPhoneType();
    switch(phoneType){
        case TelephonyManager.PHONE_TYPE_NONE:
            return "" + id;

        case TelephonyManager.PHONE_TYPE_GSM:
            return "" + id;

        case TelephonyManager.PHONE_TYPE_CDMA:
            return "" + id;

        /*
        *  for API Level 11 or above
        *  case TelephonyManager.PHONE_TYPE_SIP:
        *   return "SIP";
        */

        default:
            return "" + id;
    }

    //I used to show IMEI 

    TextView textDeviceID = (TextView)findViewById(R.id.deviceid);
    //retrieve a reference to an instance of TelephonyManager …
Run Code Online (Sandbox Code Playgroud)

android

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

Android-GCM:如何照顾已注销的用户?

在我的应用程序中,一旦我注册了一个设备,它就会被存储为持久数据,以便检查设备是否已经注册.

在服务器端,我将它们与user_id一起存储在数据库中,user_id是用户的唯一ID.

[user_id] [gcm_registration_id]

现在我无法解决这个案子:

如果用户注销:

  1. 必须清除存储在SharedPreferences中的registration_id,因为其他用户可能会在下次启动应用程序时登录.

  2. 另外,我必须从我的数据库中删除与该registration_id相对应的行,因为该设备(当前没有登录用户)不得再接收任何通知.

问题是我的数据库使用canonical_ids更新或者说我在调用时得到的最新registration_ids

https://android.googleapis.com/gcm/send

因此,我有可能找不到要删除的已注销用户的旧registration_id,这仍然允许向未登录的用户发送通知.

此外,我无法删除与我的数据库匹配user_id的行,因为用户可能只从1个设备注销,而且他/她仍然登录的设备较少.

我如何知道对于此特定用户和设备,注册ID是否已更改?

我应该将所有旧的注册ID及其相应的canonical_id存储在我的数据库中吗?

android push-notification google-cloud-messaging

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

如何唯一识别Android设备?

我正在开发一个允许用户从多个Android设备登录的应用程序(服务器 - 安卓客户端).当用户登录设备时,该设备将在服务器端注册,但我不知道如何避免重复,所以我想知道有没有机会唯一识别Android设备?我认为Google Play和Facebook可以做到这一点.

android

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

ANDROID - 获取持久设备标识符(UUID)

我需要一个在卸载并重新安装应用程序后仍然存在的设备标识符。我知道 UUID 类为该方法提供了一个标识符

String uniqueID = UUID.randomUUID().toString();
Run Code Online (Sandbox Code Playgroud)

但 Android 指南对其范围和持久性尚不清楚。在下一段它说:

Android 操作系统提供了许多具有不同行为特征的 ID,您应该使用哪个 ID 取决于以下特征如何与您的用例配合使用。但这些特征也伴随着隐私问题,因此了解这些特征如何共同发挥作用非常重要。

范围

标识符范围解释了哪些系统可以访问标识符。Android 标识符范围通常分为三种:

单个应用程序。ID 是应用程序内部的,其他应用程序无法访问。

应用程序组- 一组预定义的相关应用程序可以访问该 ID。

设备- 该 ID 可供设备上安装的所有应用程序访问。授予标识符的范围越广,其被用于跟踪目的的风险就越大。相反,如果标识符只能由单个应用程序实例访问,则它不能用于跨不同应用程序中的事务跟踪设备。

可重置性和持久性

可重置性和持久性定义了标识符的生命周期并解释了如何重置它。常见的重置触发器有:应用内重置、通过系统设置重置、启动时重置和安装时重置。Android 标识符可以有不同的生命周期,但生命周期通常与 ID 的重置方式有关:

仅会话- 每次用户重新启动应用程序时都会使用一个新 ID。

安装-重置- 每次用户卸载和重新安装应用程序时都会使用一个新 ID。

FDR 重置- 每次用户对设备进行出厂重置时都会使用一个新 ID。

FDR 持久性- ID 在出厂重置后仍然有效。

可重置性使用户能够创建与任何现有配置文件信息无关的新 ID。这很重要,因为标识符持续的时间越长、越可靠(例如跨出厂重置等),用户可能受到长期跟踪的风险就越大。如果在重新安装应用程序时重置标识符,这会减少持久性并提供重置 ID 的方法,即使没有明确的用户控制从应用程序或系统设置中重置它。

但是我不知道如何获取这些标识符,选择我的范围和持久性。谢谢

uuid android persistence guid android-identifiers

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

在android(UUID)中生成唯一ID

几个月来,我一直在使用一个类来生成一个在reintalls之间稳固的UUID.我的应用程序是关于折扣,所以我依靠这个UUID来限制每台设备的优惠券数量.

protected void getDeviceId(){
    try {
        Context context = cordova.getActivity().getApplicationContext();
        TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

        String uuid;
        String androidID = Secure.getString(context.getContentResolver(), Secure.ANDROID_ID);
        String deviceID = tm.getDeviceId();
        String simID = tm.getSimSerialNumber();

        if ("9774d56d682e549c".equals(androidID) || androidID == null) {
            androidID = "";
        }

        if (deviceID == null) {
            deviceID = "";
        }

        if (simID == null) {
            simID = "";
        }

        uuid = androidID + deviceID + simID;
        uuid = String.format("%32s", uuid).replace(' ', '0');
        uuid = uuid.substring(0, 32);
        uuid = uuid.replaceAll("(\\w{8})(\\w{4})(\\w{4})(\\w{4})(\\w{12})", "$1-$2-$3-$4-$5"); …
Run Code Online (Sandbox Code Playgroud)

android

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

如何在php中验证ANDROID_ID?

如何验证通过php中的Secure.ANDROID_ID检索的ID?

我正在编写使用它们的应用程序的服务器端,但希望确保包含无效/伪造的Android ID的请求不会得到响应.

php android

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

android.os.Build的哪些属性是固定的?

我需要android.os.Build类的固定属性列表.我从这里获得了这个列表,我把那些我知道的那些大胆修复了.通过修复我的意思是没有固件更新,重置工厂,...

  1. android.os.Build.VERSION.RELEASE //当前开发代号,如果是发布版本,则为字符串"REL".

  2. android.os.Build.BOARD //底层板的名称,如"goldfish".

  3. android.os.Build.BOOTLOADER //系统引导程序版本号.

  4. android.os.Build.BRAND //软件定制的品牌(例如,运营商),如果有的话.

  5. android.os.Build.CPU_ABI //本机代码的指令集名称(CPU类型+ ABI约定).

  6. android.os.Build.CPU_ABI2 //本机代码的第二个指令集(CPU类型+ ABI约定)的名称.

  7. android.os.Build.DEVICE //工业设计的名称.

  8. android.os.Build.DISPLAY //用于向用户显示的构建ID字符串

  9. android.os.Build.FINGERPRINT //唯一标识此构建的字符串.

  10. android.os.Build.HARDWARE //硬件的名称(来自内核命令行或/ proc).

  11. android.os.Build.HOST

  12. android.os.Build.ID //更改列表编号或"M4-rc20"之类的标签.

  13. android.os.Build.MANUFACTURER //产品/硬件的制造商.

  14. android.os.Build.MODEL //最终产品的最终用户可见名称.

  15. android.os.Build.PRODUCT //整个产品的名称.

  16. android.os.Build.TAGS //描述构建的逗号分隔标签,如"unsigned,debug".

  17. android.os.Build.TYPE //构建类型,如"user"或"eng".

  18. android.os.Build.USER

请帮我完成清单

android build uniqueidentifier

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

全新安装后仅运行一次代码,共享首选项不是解决方案,请参阅下面的说明

我想在我的android应用程序中只运行一次特定的代码.共享首选项解决方案不是解决方案,因为当您转到应用程序管理器并执行清除数据时,共享首选项会被删除,因此应用程序将其视为新的全新安装.我甚至尝试过失败的Application类,它与共享首选项一样.任何帮助,除共享偏好和应用程序类别将不胜感激.

谢谢.

android android-intent sharedpreferences android-install-apk

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

"SystemInfo.deviceUniqueIdentifier"在Android版本中使用了什么?

该文档说明了iOS/Windows版本中使用的标识符,而不是Android版本.SystemInfo.deviceUniqueIdentifier在Android 上使用什么标识符?

c# android unity-game-engine

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