2016-10-30 33 views
1

MobileIron EMMを使用して自分のアプリケーションのリモート設定を設定しようとしています。私はRestrictionManager getRestrictions()は常に空です

<?xml version="1.0" encoding="utf-8"?> 
<restrictions xmlns:android="http://schemas.android.com/apk/res/android"> 
    <restriction 
     android:title="@string/some_title" 
     android:key="SOME_KEY" 
     android:restrictionType="string" 
     android:defaultValue="123"/> 
</restrictions> 

3:私はセットアップしましマニフェスト 1:

... 
     <meta-data 
      android:name="android.content.APP_RESTRICTIONS" 
      android:resource="@xml/app_restrictions"/> 
    </application> 

2.私は制限を説明してきた私は、開発者ガイドで説明したように、すべてをやりました

RestrictionsManager manager = (RestrictionsManager) context.getSystemService(Context.RESTRICTIONS_SERVICE); 
     Bundle b = manager.getApplicationRestrictions(); 
     if(b!=null){ 
      if(b.containsKey("SOME_KEY")) { 
       return b.getString("SOME_KEY"); 
      }else{ 
       System.out.println("bundle is not null"); 
       for (String s: b.keySet()){ 
        System.out.println("key in b is : " + s); 
       } 
       System.out.println(b.isEmpty() + " bundle is empty"); 
      } 
     }else{ 
      System.out.println("Bundle is null"); 
     } 
     return ""; 
    } 

を私は常に出力持っている:

bundle is not null 
true bundle is empty 
をmは、次のようにそれを受信しよう

私は制限のデフォルト値を設定しましたが、なぜ私は制限のための少なくともデフォルト値を得ていないのですか?なぜ実際の値が得られないのですか(サーバ側では、MobileIron CloudとそのAppConnect設定で値を設定しました)。いくつかのデバイスを試してみました。私は何が欠けていますか?助けてください。私の目標は、リモートでアプリにキー値を設定することです。

答えて

0

私は同じ問題を抱えていました。私たちはXamarin csharpアプリでテストし、Playストア経由で公開されているGoogleのテストアプリ「Test DPC」を使用しました。それは定義されたアプリの制限をロードできるはずのボタン「ロードマニフェストの制限」を持っています(私の場合はそうではありませんでした)。 場合には、だけ働いた:私は、アプリケーションをデバッグ(DPCに適用そこ値は常に空/定義されていない)が、直接デバイスで開始し、

  • アドオンは/キー/値を設定しなかった

    1. テストDPCアプリ内で手動でペアを作成します。あなたはまったく制限を受けていない場合は

    は、その後、私は私のブール値は、(あなたは、「アプリケーションの管理」画面内に「保存」を押す確保)... DPC内から

  • 2

    を切り替えてしまった、それはおそらくですあなたのアプリは管理されたプロフィールの一部ではないからです。アプリの制限は2つのシナリオでのみ機能します... EMMコンソールを使用して端末をプロビジョニングした場合(工場出荷時のリセット後にのみ行うことができます)、EMMコンソールで管理されているAndroid for Workプロファイルが端末にある場合。実際にマニフェストの各制限を宣言する必要はなく、EMMのみがその情報をコンソールに提供することができます。

    プロビジョニングされていないデバイスでアプリの制限をテストする最も簡単な方法は、Google PlayストアからTest DPCアプリをダウンロードすることです。これを設定すると、デバイスを暗号化し、テストに使用できる作業プロファイルをインストールします。 DPCアプリを使用すると、アプリの制限を適用したり、マニフェストの制限事項を読み込んだり、EMMの他の多くのことをシミュレートしたりすることができます。 adbを使用するか、またはデベロッパーガイドに従ってAndroid Studioで仕事場のプロフィールでアプリを実行する方法を教えて、仕事用プロフィールにアプリをインストールできます。

    https://developer.android.com/work/guide.html#testing

    0

    これらの2つのポストはpost1post2を助けるべきです。

    フレッドは、私はそれらの記事から理解を助けますが、要約する:項目を明示的に管理する構成プロバイダによって設定されていない場合は

    を、その項目がバンドルになりません。空の「ヌルではない」バンドルは、マネージドコンフィグレーションプロバイダによって何も設定されていないことを意味します。ここでは、管理された構成のXMLファイルのdefaultValueは使用されません。アプリは積極的に管理されていません。

    defaultValueを取得するには、このRestrictionsManager.getManifestRestrictions()を使用して構成項目の値を照会します。管理された構成XMLファイルで設定されているRestrictionEntryオブジェクトのリストを返します。これは、アイテムの値がXMLファイルで定義されているdefaultValueであることを意味します。

    関連する問題