2011-12-08 47 views

回答

0

我觉得你不能阻止用户重新安装它,但在你的应用程序,你把它检查数据库设备ID以前安装的应用程序,如果你发现了,那么你禁用应用程序的功能的功能。

+0

我认为他可以做,但他需要建立一些补丁。首先它会安装在设备上的应用程序之前,并检查从数据库的应用程序的重新安装检查。 –

+1

@Last Warrior - 在这种情况下,他必须在安装了他的应用程序的每个设备上安装补丁程序,就像没有安装其他应用程序一样。 – user370305

+0

@LastWarrior你知道它很容易让植根电话擦拭分贝 – ingsaurabh

0

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

  • 创建与服务器的连接
  • 询问是否授权该设备
  • 关闭,如果你不授权
+0

可以存储什么独特的设备ID? – user1087134

0

//使用下面的代码,查找应用是应用程序安装或没有
//你的应用程序包的名称是唯一的ID

// appUniqueIdStr -package应用程序的名称

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 ; 
    } 
相关问题