我需要创建一个应用,我必须显示当前访问该应用的用户总数。 (类似于我们可以显示的网页中的web-stat"总访问者数量:1000")。
只要有任何用户打开应用程序(跨越全球),他就会看到截至目前的总访客数量。
此要求是否存在任何解决方案?
感谢任何帮助/建议。感谢
- 更多信息 - 有一个网站http://www.web-stat.net/可以用于网页。需要类似的Android应用程序。
答案 0 :(得分:1)
您可以阅读的两个例子:
这两种都是DataReporting服务,它提供用于导出数据的API,例如:作为JSON。主要目的是您的应用程序将使用情况统计信息发送到外部服务器(您可以查看数据)。 此外,您还可以连接到这些服务器并在设备上检索数据。
更新 - 本地存储
如果您只想在设备上显示本地计数器,向用户显示他访问该应用的频率,请查看 SharedPreferences 。 SharedPreferences使您可以在设备上存储数据,并在打开或关闭应用程序时再次检索该数据。
更新 - 全球 - 数据库
如果你只想要一个“全球”计数器。我建议你创建一个 SQL数据库,用于存储当前访问者数量,并在每次用户访问时增加它并在应用启动时接收当前计数以显示它。 如果您想跟踪当前正在使用该应用的应用的不同用户,则可以为每个用户生成相同的ID,并在用户首次打开应用并将其存储到SQL数据库中时将其存储在SQL数据库中柜台。 为此,您当然还需要一个存储ID的表。 当用户关闭应用程序时,您需要再次连接到数据库并从表中删除其ID并减少计数器。
这可能是为每个用户获取唯一ID的方法:
public class Installation {
private static String sID = null;
private static final String INSTALLATION = "INSTALLATION";
public synchronized static String id(Context context) {
if (sID == null) {
File installation = new File(context.getFilesDir(), INSTALLATION);
try {
if (!installation.exists())
writeInstallationFile(installation);
sID = readInstallationFile(installation);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return sID;
}
private static String readInstallationFile(File installation) throws IOException {
RandomAccessFile f = new RandomAccessFile(installation, "r");
byte[] bytes = new byte[(int) f.length()];
f.readFully(bytes);
f.close();
return new String(bytes);
}
private static void writeInstallationFile(File installation) throws IOException {
FileOutputStream out = new FileOutputStream(installation);
String id = UUID.randomUUID().toString();
out.write(id.getBytes());
out.close();
}
}
从这里采取:Android unique id
答案 1 :(得分:0)