2017-10-25 11 views
1

Android 6.0以降で自分のアプリをホワイトリストに登録しようとしています。私はこれを行うためにAndroidのコードを見たことがありますが、XamarinとXamarinのドキュメントでは翻訳されません。SetActionは文字列を引数にとり、同じではないAndroidドキュメントへのリンクを示します。XamarinでSetActionを使用する方法

ここXamarinは、それは設定が好きではありません

intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); 

を受け付けないAndroidのコードです。私はSetAction()が文字列argを取ると言うXamarinのドキュメントを読んだ。それは彼らが言うことであり、Androidのドキュメントを指している。

注、私はjavascriptのインタフェースクラスでこれを呼び出していると私はこれを試してみましたが、それは

class MyJSInterface : Java.Lang.Object 
    { 
    Context context; 
    public MyJSInterface(Context context) 
     { 
      this.context = context; 
     } 
    [Export] 
    [JavascriptInterface] 
    public void SetDozeOptimization() 
     { 
      Toast.MakeText(context, "launch optimization", ToastLength.Short).Show(); 

      setDozeComplete = false; 
      Intent intent = new Intent(); 
      String packageName = context.PackageName; 
      PowerManager pm = (PowerManager)context.GetSystemService(Context.PowerService); 
      if (pm.IsIgnoringBatteryOptimizations(packageName)) 
       intent.SetAction("ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS"); 
      else 
      { 
       intent.SetAction("ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"); 
       intent.SetData(Android.Net.Uri.Parse("package:" + packageName)); 
      } 
      context.StartActivity(intent); 
     } 

} 

動作しないので、これを達成するための正しい構文は何ですか?

答えて

1

Android.Provider.Settings.ActionRequestIgnoreBatteryOptimizations

  • android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS

Android.Provider.Settings.ActionIgnoreBatteryOptimizationSettings

  • android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS

例:

intent.SetAction(Android.Provider.Settings.ActionRequestIgnoreBatteryOptimizations); 
intent.SetAction(Android.Provider.Settings.ActionIgnoreBatteryOptimizationSettings); 
+0

これは問題ではないので、私はテストしませんでした。質問は構文に関するもので、Visual Studioは正しい構文だと言います。ありがとうございました。承認済みとしてマーク – Bobh

関連する問題