2017-10-24 11 views
2

私は1つの問題に直面しており、インターネット上で解決策を得ていません。 すべてのユーザープロフィールの連絡先を一覧表示できますが、仕事用プロフィールから連絡先が表示されません。職場の連絡先を検索する方法

作業プロファイルに関する詳細については、以下のリンクを参照してください https://support.google.com/work/android/answer/6191949?hl=en https://support.google.com/work/android/answer/7029561?hl=en

`

private static final String[] PROJECTION = 
     { 
      Contacts._ID, 
      Contacts.LOOKUP_KEY, 
      Build.VERSION.SDK_INT 
        >= Build.VERSION_CODES.HONEYCOMB ? 
        Contacts.DISPLAY_NAME_PRIMARY : 
        Contacts.DISPLAY_NAME 

     }; 

private static final String SELECTION = 
      Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ? 
      Contacts.DISPLAY_NAME_PRIMARY + " LIKE ?" : 
      Contacts.DISPLAY_NAME + " LIKE ?"; 

@Override 
    public Loader<Cursor> onCreateLoader(int loaderId, Bundle args) { 
     /* 
     * Makes search string into pattern and 
     * stores it in the selection array 
     */ 
     mSelectionArgs[0] = "%" + mSearchString + "%"; 
     // Starts the query 
     return new CursorLoader(
       getActivity(), 
       Contacts.CONTENT_URI, 
       PROJECTION, 
       SELECTION, 
       mSelectionArgs, 
       null 
     ); 
    } 
` 

例えば:私は、一方で、通常のプロファイルの名前を「トッド」との接触を持っている私私の仕事のプロファイルの下で接触する「トム」を持っています。今度はネイティブのメッセージアプリケーションで、それはtoddとtommの両方を表示します。私は私の実装で同じことが起こりたい。

職場の連絡先を取得するにはどうすればよいですか?

+0

作業プロファイルではありません経験を解決しますが、一つのことは、あなたの最初のリンクから私の目を引いた以下のコードを参照してください。 「自分の組織は何を制御できるでしょうか?」では、「個人プロファイルと職場プロファイルで共有できるものを拒否する_」があります。私はこれらの制限がどのように働いているのかわかりませんが、職場の連絡先にアクセスできるアプリを「ホワイトリスト」する方法(「仕事」)と、あなたのアプリがそのリストにない可能性がありますネイティブメッセージアプリがあるかもしれません)。また、(2番目のリンクごとに)仕事のプロフィールをオフにしていないと仮定できますか? – TripeHound

+0

私は仕事のプロフィールをオフにしていません。仕事のプロフィールがオフの場合、仕事のプロフィールに属するコンテンツ/アプリ/連絡先にはアプリがアクセスできません。 – RQube

答えて

0

は私の問題

private static final String[] PROJECTION_ENTERPRISE = new String[]{ 
      ContactsContract.Contacts._ID, 
      ContactsContract.CommonDataKinds.Phone.CONTACT_ID, 
      ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, 
      ContactsContract.CommonDataKinds.Phone.DATA1, 
      ContactsContract.CommonDataKinds.Phone.MIMETYPE, 
      ContactsContract.CommonDataKinds.Phone.TYPE, 
      ContactsContract.CommonDataKinds.Phone.LABEL 
    }; 

    @RequiresApi(api = Build.VERSION_CODES.N) 
     private Cursor getEnterpriseContact(String searchString, String[] cols, ContactSearchType mContactSearchType, String digits, String sortOrder) { 
      // Get the ContentResolver 
      ContentResolver cr = mContext.getContentResolver(); 
      // Get the Cursor of all the contacts 
      Uri phoneUri = ContactsContract.CommonDataKinds.Phone.ENTERPRISE_CONTENT_FILTER_URI.buildUpon().appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY, String.valueOf(ContactsContract.Directory.ENTERPRISE_DEFAULT)).build(); 
      Uri phoneUriWithSearch = Uri.withAppendedPath(phoneUri, Uri.encode(searchString)); 
      Cursor pCursor = cr.query(phoneUriWithSearch, cols, null, null, sortOrder); 
      Cursor workCur = null; 
      if (mContactSearchType != ContactSearchType.CONTACT_WITH_PHONE_NO) { 
       Uri emailUri = ContactsContract.CommonDataKinds.Email.ENTERPRISE_CONTENT_FILTER_URI.buildUpon().appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY, String.valueOf(ContactsContract.Directory.ENTERPRISE_DEFAULT)).build(); 
       Uri emailUriWithSearch = Uri.withAppendedPath(emailUri, Uri.encode(searchString)); 
       Cursor eCursor = cr.query(emailUriWithSearch, cols, null, null, sortOrder); 
       workCur = new MergeCursor(new Cursor[]{pCursor, eCursor}); 
      } else { 
       workCur=pCur; 
      } 
    return workCur; 
    } 
関連する問題