卸载应用程序本身按钮

问题描述:

我试图卸载应用程序本身上的按钮的点击,因为我的应用程序是无法被用户卸载时,它已经增加了一些Context.DEVICE_POLICY_SERVICE卸载应用程序本身按钮

try { 
      try { 
       ComponentName devAdminReceiver = new ComponentName(mContext, AdminReceiver.class); 
       DevicePolicyManager dpm = (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE); 
       dpm.removeActiveAdmin(devAdminReceiver); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

      new Handler().postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        try { 
         Uri packageUri = Uri.parse(getPackageName()); 
         Intent uninstallIntent = 
           new Intent(Intent.ACTION_DELETE, packageUri); 
         uninstallIntent.putExtra(Intent.EXTRA_RETURN_RESULT, false); 
         //new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageUri); 
         startActivity(uninstallIntent); 
        } catch (Exception e) { 
         e.printStackTrace(); 

         Uri packageURI = Uri.parse(getPackageName()); 
         Intent uninstallIntent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageURI); 
         startActivity(uninstallIntent); 
        } 
       } 
      }, 1200); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

错误日志

的点击
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.UNINSTALL_PACKAGE dat=zcode.assistive.easy.touch } 
                       at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1669) 
                       at android.app.Instrumentation.execStartActivity(Instrumentation.java:1441) 
                       at android.app.Activity.startActivityForResult(Activity.java:3464) 
                       at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48) 
                       at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:75) 
                       at android.app.Activity.startActivityForResult(Activity.java:3425) 
                       at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:856) 
                       at android.app.Activity.startActivity(Activity.java:3661) 
                       at android.app.Activity.startActivity(Activity.java:3629) 

编辑:问题解决BY @CommonsWare评论

+3

'Uri packageUri = Uri.parse(getPackageName());'是错误的。这需要'Uri packageUri = Uri.parse(“package:”+ getPackageName());'。 – CommonsWare

使用以下代码

Uri packageUri = Uri.parse("package:"+getPackageName()); 
         Intent uninstallIntent = 
           new Intent(Intent.ACTION_DELETE, packageUri); 
         uninstallIntent.putExtra(Intent.EXTRA_RETURN_RESULT, false); 
         //new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageUri); 
         startActivity(uninstallIntent); 
+1

阅读@CommonsWare的评论 – Nepster