2017-01-25 117 views
0

我需要打開我的Xamarin Android應用程序的應用程序設置頁面。我想從Xamarin Android應用程序打開應用程序設置頁面

使用Java,似乎做了正確的方法是:

startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS, 
       Uri.parse("package:" + BuildConfig.APPLICATION_ID))); 

因此,使用C#,我想:

StartActivity(new Intent(Android.Provider.Settings.ActionApplicationDetailsSettings, 
       Android.Net.Uri.Parse("package:" + BuildConfig.ApplicationId))); 

這無助...... 我沒有試過Uri參數,在這種情況下我得到一個例外:

Android.Content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.APPLICATION_DETAILS_SETTINGS } 

我也試過

StartActivityForResult(
    new Intent(Android.Provider.Settings.ActionApplicationDetailsSettings), 0); 

相同的異常...

任何想法?

謝謝。

回答

3

我終於找到了問題!

StartActivity(new Intent(Android.Provider.Settings.ActionApplicationDetailsSettings, 
      Android.Net.Uri.Parse("package:" + BuildConfig.ApplicationId))); 

這是

BuildConfig.ApplicationId 

不行......

正確的調用使用Xamarin是(爲我工作或至少一個)那麼

StartActivity(new Intent(
    Android.Provider.Settings.ActionApplicationDetailsSettings, 
    Android.Net.Uri.Parse("package:"+ Android.App.Application.Context.PackageName))); 
2

通過Visual Studio和C#使用Xamarin,我也切換到了Application.Context.PackageName

我一直使用BuildConfig.ApplicationId找到Java示例,但在C#中,這導致我遇到了同樣的問題。我們的目標是不同的,但我想確認你的語法讓我更向我邁進了一步。

using Android.App; 
using Android.Net; 
... 
StartActivity(new Intent(
    Android.Provider.Settings.ActionApplicationDetailsSettings, 
    Uri.Parse("package:" + Application.Context.PackageName))); 
+0

很高興幫助... :) – Sylvain

相關問題