Sách

Thứ Bảy, 10 tháng 4, 2021

Hàm mở task top khi sử dụng PiP


/**
* Bring up launcher task to front
*/
public static void navToLauncherTask(Context appContext) {
if (appContext != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
ActivityManager activityManager = (ActivityManager)
appContext.getSystemService(Context.ACTIVITY_SERVICE);
// iterate app tasks available and navigate to launcher task (browse task)
if (activityManager != null) {
final List<ActivityManager.AppTask> appTasks;
appTasks = activityManager.getAppTasks();
for (ActivityManager.AppTask task : appTasks) {
final Intent baseIntent = task.getTaskInfo().baseIntent;
final Set<String> categories = baseIntent.getCategories();
if (categories != null && categories.contains(Intent.CATEGORY_LAUNCHER)) {
task.moveToFront();
return;
}
}
}
}
}

/**
* Bring up launcher task to front
*/
fun FragmentActivity?.navToLauncherTask() {
if (this == null || this.isFinishing) return
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
val activityManager = (getSystemService(AppCompatActivity.ACTIVITY_SERVICE) as ActivityManager)
val appTasks = activityManager.appTasks
for (task in appTasks) {
val baseIntent = task.taskInfo.baseIntent
val categories = baseIntent.categories
if (categories != null && (categories.contains(Intent.CATEGORY_LAUNCHER)
|| categories.contains(Intent.CATEGORY_DEFAULT))) {
task.moveToFront()
return
}
}
}
}

Thứ Năm, 7 tháng 5, 2020

Android: hàm insert danh bạ vào máy (android create new contact programming)


    public static void insertPhoneContact(String displayName, String number, Context context) {
        /*context is App or Activity*/
        ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>();
        int contactIndex = operations.size();
        //Newly Inserted contact
        // A raw contact will be inserted ContactsContract.RawContacts table in contacts database.
        operations.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)//Step1
                .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
                .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
                .build());

        //Display name will be inserted in ContactsContract.Data table
        operations.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)//Step2
                .withValueBackReference(ContactsContract.RawContacts.Data.RAW_CONTACT_ID, contactIndex)
                .withValue(ContactsContract.RawContacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
                .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, displayName)
                .build());

        //Mobile number will be inserted in ContactsContract.Data table
        operations.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)//Step 3
                .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, contactIndex)
                .withValue(ContactsContract.RawContacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
                .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, number)
                .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
                .build());
        boolean isSuccess = false;
        try {
            // We will do batch operation to insert all above data
            //Contains the output of the app of a ContentProviderOperation.
            //It is sure to have exactly one of uri or count set
            ContentProviderResult[] contentProvider = context.getContentResolver()
                    .applyBatch(ContactsContract.AUTHORITY, operations); //apply above data insertion into contacts list
            Log.e("insertPhoneContact", "result: " + contentProvider);
            isSuccess = contentProvider != null && contentProvider.length > 0;
        } catch (RemoteException e) {
            e.printStackTrace();
        } catch (OperationApplicationException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("insertPhoneContact displayName: " + displayName + ", number:  " + number + ", isSuccess: " + isSuccess);
    }

Thứ Hai, 9 tháng 9, 2019

Project: vlc-android

https://www.programcreek.com/java-api-examples/?code=xuie0000%2Fvlc-android%2Fvlc-android-master%2F#