卸载应用程序本身按钮
问题描述:
我试图卸载应用程序本身上的按钮的点击,因为我的应用程序是无法被用户卸载时,它已经增加了一些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评论
答
使用以下代码
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
'Uri packageUri = Uri.parse(getPackageName());'是错误的。这需要'Uri packageUri = Uri.parse(“package:”+ getPackageName());'。 – CommonsWare