我想從系統對話框中得到結果。意味着我無法控制的對話。方法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