1package eu.siacs.conversations.utils;
2
3import android.Manifest;
4import android.annotation.SuppressLint;
5import android.content.Context;
6import android.content.pm.PackageManager;
7import android.database.Cursor;
8import android.net.Uri;
9import android.os.Build;
10import android.provider.ContactsContract.Profile;
11import android.provider.Settings;
12
13public class PhoneHelper {
14
15 @SuppressLint("HardwareIds")
16 public static String getAndroidId(Context context) {
17 return Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
18 }
19
20 public static Uri getProfilePictureUri(Context context) {
21 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context.checkSelfPermission(Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
22 return null;
23 }
24 final String[] projection = new String[]{Profile._ID, Profile.PHOTO_URI};
25 final Cursor cursor;
26 try {
27 cursor = context.getContentResolver().query(Profile.CONTENT_URI, projection, null, null, null);
28 } catch (Throwable e) {
29 return null;
30 }
31 if (cursor == null) {
32 return null;
33 }
34 final String uri = cursor.moveToFirst() ? cursor.getString(1) : null;
35 cursor.close();
36 return uri == null ? null : Uri.parse(uri);
37 }
38}