从根本上说,我想要跟踪用户的设备,比如一些唯一的设备id,然后在用户安装我的应用程序时存储在服务器上!如果它在卸载后再次尝试安装我的应用程序,那么应用程序不应该安装。我怎样才能做到这一点呢?
我认为你不能阻止用户重新安装它,但是在你的应用程序中你放了一个功能,检查数据库的设备ID以前安装的应用程序,如果你发现然后你禁用你的应用程序的功能。
//使用下面的代码来查找应用程序是否安装
//你的应用程序包名是唯一的id
//appUniqueIdStr -应用程序的包名
boolean installed = appInstalledOrNot(appUniqueIdStr);
if(installed){
//dont install
}
else{
//install
}
/**
* check app installed or not
* @param uri is the package name of the app
* @return boolean whether installed or not
*/
private boolean appInstalledOrNot(String uri)
{
boolean app_installed = false;
ListofAppinMyDevice getmyApp=new ListofAppinMyDevice();
ArrayList<PInfo> apps =getmyApp.getInstalledApps(false); /* false = no system packages */
Log.e("hi", "apps==="+apps.toString());
String uri_app=null;
if(uri!=null)
{
uri_app=uri;
}
else
{
uri_app=null;
}
for (int i = 0; i < apps.size(); i++)
{
Log.e("pack name", "apps.get(i).pname.==="+apps.get(i).pname.toString());
if(apps.get(i).pname.toString().trim().equalsIgnoreCase(uri_app))
{
app_installed=true;
Log.v("hi","im inside the loop");
break;
}
}
Log.e("boo", "app_installed==="+app_installed);
return app_installed ;
}
你不能自己卸载应用程序(否则你会看到病毒从一开始就在擦拭我们的手机),但如果在数据库中找到该设备,你仍然可以禁用该应用程序。
- 创建到服务器的连接
- 询问设备是否已授权
- 如果你没有被授权,关闭应用程序