Android应用程序:如何防止用户重新安装之前安装并随后卸载的应用程序



从根本上说,我想要跟踪用户的设备,比如一些唯一的设备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 ;
    }

你不能自己卸载应用程序(否则你会看到病毒从一开始就在擦拭我们的手机),但如果在数据库中找到该设备,你仍然可以禁用该应用程序。

  • 创建到服务器的连接
  • 询问设备是否已授权
  • 如果你没有被授权,关闭应用程序

相关内容

最新更新