我想从系统对话框中得到结果。意味着我无法控制的对话。方法onActivityResult不会被调用,当被调用的resultCode总是为零
我的onCreate方法:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = MainActivity.this;
//Floating Action Button for uninstalling applications
fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
for(int i = 0; i < checkValues.length; i++)
{
//Uninstall any true values
if(checkValues[i] == 1)
{
String appName = AppContent.getItem(i).pkgName;
Uri packageUri = Uri.parse("package:"+ appName);
Intent uninstallIntent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageUri);
startActivity(uninstallIntent);
}
}
}
});
//Disappear the button until the user makes a selection.
fab.setVisibility(View.INVISIBLE);
}
我onActivityResult方法:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
System.out.println("ACTIVITY RESULT : " + resultCode + " ----- ACTIVITY REQUEST CODE : " + requestCode);
}
的想法是,一旦意图启动和用户提供卸载该应用或取消卸载的选择,onActivityResult会根据resultCode整数给我们他们的选择。
我遇到的问题是onActivityResult永远不会被调用。我试图通过使用固定这个问题:
MainActivity.this.startActivity(intent)
context.startActivity(intent)
我虽然,我的问题是,从一个匿名类调用它没有触发onActivityResult方法,但即使失败。然后我用
startActivityForResult(intent, anyNumberHere)
这实际上触发了onActivityResult方法试过了,但是resultCode为参数始终是零。用户点击取消或卸载并不重要。这对我没有帮助,因为我需要知道他们的选择,所以我可以根据它执行更多的代码。
我读过关于这个问题的文章,并且有不少人遇到了AndroidManifest.xml文件中的设置问题,所以我在这里发布我的文章以及完整性。
<?xml version="1.0" encoding="utf-8"?>
<manifest package="app.app.app"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="android:icon,android:theme">
<activity android:name=".SplashScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".MainActivity">
</activity>
</application>
</manifest>
关于如何解决这个问题的任何想法?
参考http://stackoverflow.com/questions/27358672/unistall -android-application-programmatically – sasikumar
我的意图完美的工作。我遇到的问题是,我从onActivityResult获得的resultCode始终为零。这意味着我不知道用户是否选择取消或卸载应用程序。 – exc414