pyu*_*s13 5 android android-intent android-activity
从我的应用程序我试图通过使用代码卸载应用程序
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE);
uninstallIntent.setData(Uri.parse("package:" +packageName));
uninstallIntent.setAction(Intent.ACTION_VIEW);
startActivityForResult(uninstallIntent,UNINSTALL_APPLICATION);
Run Code Online (Sandbox Code Playgroud)
根据我开始的结果活动我想根据用户的输入执行不同的操作,如果取消或点击确定.
正如我所料,点击确定的结果代码将是,RESULT_OK并且点击取消将是RESULT_CANCEL,但实际上在两种情况下我得到RESULT_CANCEL.
那么我该如何区分用户的输入.
谢谢!
pyu*_*s13 10
经过深思熟虑后,我终于得到了解决方案.
我是如何在调用卸载Intent时实现的,我已经使用了将包名保存在首选项文件中
SharedPreferences prefs;
prefs.edit().putString(DELETE_PACKAGE_NAME, packageName).commit();
Run Code Online (Sandbox Code Playgroud)
我在OnActivityresult做了什么,我刚检查了保存包名称的应用程序是否仍然存在,如果它意味着用户点击取消否则他点击确定.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==DELETE_APP){
String requestedPackageName=prefs.getString(DELETE_PACKAGE_NAME, "");
boolean isPresent=GCMIntentService.isAppPresent(requestedPackageName, this);
if(isPresent){
//user Clicked on Cancel
}else{
//user Clicked on Ok
}
}
}
Run Code Online (Sandbox Code Playgroud)
检查应用程序存在的代码
public static boolean isAppPresent(String packageName,Context context) {
try{
ApplicationInfo info = context.getPackageManager().getApplicationInfo(packageName, 0 );
return true;
} catch( PackageManager.NameNotFoundException e ){
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
| 归档时间: |
|
| 查看次数: |
3008 次 |
| 最近记录: |