标签: android-identifiers

如何以编程方式为视图分配ID?

在XML文件中,我们可以为视图分配ID android:id="@+id/something",然后调用findViewById(),但在以编程方式创建视图时,如何分配ID?

我认为setId()与默认分配不同.setId()是额外的.

任何人都可以纠正我吗?

android android-view findviewbyid android-resources android-identifiers

195
推荐指数
3
解决办法
14万
查看次数

如何更改现有应用程序的Android App Name和ID?

我在Eclipse中有两个Android项目.我从另一个项目中复制了一个项目,然后更改了应用程序名称(在strings.xml中)和项目名称(在Eclipse中).

但现在有一个问题:当在模拟器中运行任一应用程序时,另一个应用程序丢失(可能被覆盖?).所以我想我还有另外一个设置,所以Android会识别出两个不同的应用程序?

谢谢!

android android-identifiers

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

MarshMallow警告"不建议获取设备标识符"后的唯一Android设备ID?

我看到了一个我最好的问题是否有一个独特的Android设备ID?

我使用了一些以下代码来获取唯一ID.

public static String getDeviceId(Activity context) {

    PermissionsChecker checker = new PermissionsChecker(context);

    if (checker.lacksPermissions(Manifest.permission.READ_PHONE_STATE))
        PermissionsActivity.startActivityForResult(context, 0, REQUIRED_PERMISSION);
    else {
        TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

        final String tmDevice = tm.getDeviceId();
        final String androidId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);

        UUID deviceUuid = new UUID(androidId.hashCode(), ((long) tmDevice.hashCode() << 32));

        return deviceUuid.toString();
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

但是我在悬停时会收到一些警告

tm.getDeviceId();

Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); 如下:

建议不要使用getString来获取设备标识符.

除高价值防欺诈和高级电话用例外,不建议使用设备标识符.对于广告用例,请使用AdvertisingIdClient $ Info#getId并使用InstanceId#getId进行分析.

有什么解决方案吗?它有害还是其他什么?

android telephonymanager android-identifiers android-settings

16
推荐指数
1
解决办法
8733
查看次数

android.Settings.Secure.ANDROID_ID

我正在开发一个Android应用程序,我将使用LVL库来检查谷歌播放许可证.

阅读LVL文档后,我已经读过我必须获取android.Settings.Secure.ANDROID_ID来混淆google play响应.

但我还读到,从TelephonyManager获得的ANDROID_ID有时对于不同的设备是相同的.

首先,它在2.2之前的Android版本("Froyo")上并非100%可靠.此外,在主要制造商的流行手机中至少有一个被广泛观察到的错误,其中每个实例都具有相同的ANDROID_ID

真的吗?

谢谢

android telephonymanager android-identifiers

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

GSF ID KEY(谷歌服务框架ID)作为Android设备的唯一标识符

我需要唯一识别Android设备.我读到了关于ANDROID_ID但它似乎与Android 2.2有问题.然后还有其他与TelephonyManager相关的标识符,但我认为它们不适用于平板电脑.
因此,寻找在每台设备上工作的东西我偶然发现了GSF ID KEY(谷歌服务框架ID).你们认为这是一个可靠且始终可行的解决方案吗?这是我找到的用于检索GSF ID KEY的代码:

private static String getGsfAndroidId(Context context) 
{
    Uri URI = Uri.parse("content://com.google.android.gsf.gservices");
    String ID_KEY = "android_id";
    String params[] = {ID_KEY};
    Cursor c = context.getContentResolver().query(URI, null, null, params, null);
    if (!c.moveToFirst() || c.getColumnCount() < 2)
        return null;
    try 
    {
        return Long.toHexString(Long.parseLong(c.getString(1)));
    } 
    catch (NumberFormatException e) 
    {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-identifiers

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

以编程方式获取for循环中的视图ID?

我只是想知道.有没有办法使用for循环创建一个id

我在xml中有10个按钮.有ID是button1,button2,button3... button10 现在,我创建按钮的数组java class,并像这样做

public class Menu extends Activity
{
    Button[] arrayButton=new Button[10];

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu);

        init();
    }

    private void init()
    {
        for(int i=1 ; i<9 ; i++)
        {
            String abc = "but"+String.valueof(i);
            int x = Integer.parseInt(abc);


            Log.d("abc", abc);

            Log.d("x", String.valueOf(x) );

            //arrayButton[i] = (Button) findViewById(R.id.x);  // giving error 

            //arrayButton[i].setText("Hello:");
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

我想知道我该怎么做这种工作.使用for循环获取所有按钮可以使我的工作更快,有时我想设置所有按钮的文本.

android view r.java-file android-resources android-identifiers

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

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 上的应用安装之间保留数据?

我认为会有一些直接的解决方案。

要求

  • 在应用安装/卸载会话中唯一标识设备。

选项:

  1. 每次需要时使用某种 Android 的 device-identifier-API(每次从 Android 的 API 中读取)。根据Identififying-app-installations博客文章,这是不推荐且不可靠的解决方案。

  2. 生成一次 UUID(在第一次应用程序启动时)并以某种方式将其保存在某个地方,以便在多个应用程序安装/卸载时保留它。这个“不知何故”的部分是个谜。无法选择存储到 SD 卡或云等解决方案。iOS 有可用于这类东西的钥匙串,但我没有找到 Android 的等价物。

我在这里的其他选择是什么?由于我的服务器实现,我更喜欢走 (2) 路线(如果不存在,服务器将第一次生成 UUID)。但如果它不是一个选项,我可以回退到 (1) 并修改服务器。

谢谢。

android android-identifiers

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

Android设备ID是否区分大小写?

我从系统中获取了所有小写字母的设备ID.PLayStore中的某些设备ID应用程序仅以大写形式返回设备ID.我听说iOS的这些ID 区分大小写.

Android设备ID区分大小写吗?

我也很欣赏与文档的链接.

编辑:更准确地说,正如您在此处看到的那样,读取了设备ID

f07a13984eed116a

是那个相同的设备

F07A13984EED116A ?或者是最后一个设备?

android android-identifiers deviceid

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

Android O 中的 Android_ID

我们使用以下代码获取唯一 ID:

String id = Settings.Secure.getString(mContext.getContentResolver(),
                 Settings.Secure.ANDROID_ID);
Run Code Online (Sandbox Code Playgroud)

在 Android O 更改指南中,我们可以看到以下几点:

Android O 对平台进行了以下与隐私相关的更改。 https://developer.android.com/preview/behavior-changes.html

The platform now handles identifiers differently.
Values of ANDROID_ID are now scoped per-app instead of per-user. The value of ANDROID_ID is unique for each combination of application package name, signature, user, and device. Two apps running on the same device no longer see the same Android ID, and so cannot correlate.

The value of ANDROID_ID does not change on package uninstall or reinstall, as long …
Run Code Online (Sandbox Code Playgroud)

android android-identifiers android-8.0-oreo

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

如何获取View的id的String表示形式

我有一个view,我有它的资源ID(即R.id.xxx),我想提取xxx部分并将其转换为字符串.

这可能吗?

为了清楚起见,我有view.getId() 一个资源整数,而不是id的实际名称.

android android-view android-resources android-identifiers

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

如何在Android中随机且以编程方式生成ID?

我正在尝试为视图生成随机ID,如以下屏幕截图所示。但这没有用。它为空。我应该如何找到ViewById?

在此处输入图片说明

android android-view android-identifiers

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