Understanding android.permission.GLOBAL_SEARCH uses - android

I am trying to figure out the use of android.permission.GLOBAL_SEARCH documentation does not provide any useful information.
What I am trying to achieve and where I am confused?
IMO this permission may allow the system app (that search widgets on launcher) to perform Global Search just like a search but for apps that expose a provider (search) like contacts, calendar, and more. Is this true? Or is it just a deprecated permission that the Android team forgot to remove?
I am trying to make a system app that can query almost all of the data on the device like contacts, media, calendar, and provide a way to open that in a supported app like contact data in contact app (based on Authority of provider) is android.permission.GLOBAL_SEARCH something I can use or should I look for something else?
Thanks in advance for the help :)

Related

How to access or modify Android ContentProvider?

I want to know how to modify message data, neither root nor default application in android application
Goal is block number list manager and i want to receive message of to filtered number I’ve looked BlockNumberContract api but this require permission like default sms/dialer application, carrier application Only default application(User is chosen application) will have access MMS-SMS ContentProvider when on android 4.4+ I was check to LINK
Also, If you know anything else, please let me know them
Additionally if impossible on android application level, Please another level any solutions and any ideas let me know
thanks :)
You can't. That's the entire reason they created the Default Messaging App- to prevent you from doing it. You need to be the default messaging app to do this- or at least root and directly edit the db.

Isolate Android Contact Provider

I want to create a Contact Provider so I can populate it from our database and let our business workforce to have all the customer data. That's the "easy" part.
But what I need is to isolate those contacts and avoid them to be cloned disallowing the people to copy/clone them and loosing track of that information.
Is there a way to do that? I haven't found a way to do that and I think the only way is to show the contacts in a custom Contact app. The problem with that solution is that it wouldn't be possible to know who's calling.
Is there a way to do that?
On an Android device, there will be roughly zero lines of code that knows anything about a custom ContentProvider that you create. If you do not want to share data from that provider, do not offer any UI to allow people to share data from that provider, and do not export the provider to third-party apps.
I haven't found a way to do that and I think the only way is to show the contacts in a custom Contact app
You needed to write that anyway. There are ~2 billion Android devices. None of them will have a Contacts-style app that knows anything about some custom ContentProvider that you create.
The problem with that solution is that it wouldn't be possible to know who's calling.
Correct. After all, the devices' call managers do not know anything about your custom ContentProvider.
Now, it could be that by "create a Contact Provider", you really meant "not create a Contact Provider". In this case, the "it" in "I can populate it from our database and let our business workforce to have all the customer data" might mean the standard Android ContactsContract ContentProvider. In this case, the Contacts app and in-call screens and everything else that works with contacts will work with your contacts. However, this is a system-supplied ContentProvider, exported to third-party apps, with documentation and so on. There are thousands of apps, both pre-installed and available via the Play Store and elsewhere, that can work with ContactsContract. You have no means of stopping that, and you have no means of preventing those apps from doing whatever it is that they want with this data.
IOW, you cannot satisfy "I want the Contacts app to have my contacts" and "I do not want the Contacts app to have my contacts" at the same time.

Android- Change permissions of app

I know this is not a technical question but I've searched a lot of time and can't find a suitable answer:
I would like to change the permissions of my app. You can find the app here: https://play.google.com/store/apps/details?id=io.trigger.forge2dd999d0f14b11e1bc8612313d1adcbe&feature=search_result#?t=W251bGwsMSwyLDEsImlvLnRyaWdnZXIuZm9yZ2UyZGQ5OTlkMGYxNGIxMWUxYmM4NjEyMzEzZDFhZGNiZSJd
If you look at "Permissions" it says:
YOUR PERSONAL INFORMATION
READ CONTACT DATA
Allows the app to read all of the contact (address) data stored on your tablet. Malicious apps may use this to send your data to other people. Allows the app to read all of the contact (address) data stored on your phone. Malicious apps may use this to send your data to other people.
And I would like to remove this so that the app does not read contact data of a user. Can someone tell me please how to do that?
Thanks,
enne
If the app doesn't actually access the contacts API, then you can safely remove the corresponding <uses-permission/> from your AndroidManifest.xml file and rebuild your APK.
http://developer.android.com/guide/topics/manifest/uses-permission-element.html
Just to add to Jeremy's answer about , looks like the permissions you are using are: android.permission.READ_PROFILE and android.permission.READ_CONTACTS
You need to remove those. For more details check this out:
http://developer.android.com/reference/android/Manifest.permission.html

Integrating application with default in android

I am currently writing an application which performs a search operation requested by the server at a pre-defined server location. Now , i need to integrate this application into the default Search that is provided on the Android Device i.e.. it should appear as an option for the user to perform his search ... like there are options to search the web , android market etc.. So , i should have my app also besides this ...
I am in a fix as to how to do this. Any suggestions, help of any kind , links to tutorials , articles are highly appreciated.
Thank You
You are in need of Suggestion Provider, you can explore this and if i remember correctly, the user needs to explicitly add your app to the search list. (It doesn't happen automatically)
http://developer.android.com/reference/android/content/SearchRecentSuggestionsProvider.html

Receive notification when a new content provider is installed/registered

I have been trying to develop an app that will deal with content providers {contacts, calendar, docs, etc} and their sync options. Although the app works well for existing providers, there might come a time when the authority is not pre-defined. In that case my app can do nothing.
What I need to do is to listen for when a new content provider is installed/registered. For example, if I download Google docs from the market, it registers itself as a provider, so my application should be able to realise that and deal with it accordingly.
Can anyone help with this? I have searched online for two days and unless I'm doing something wrong in the search string, I have no answers thus far. Any help is appreciated, and thanks in advance.
-Sreedevi.
There is no way to detect when a new ContentProvider is installed.
What you CAN do is detect when a new package is installed (see http://developer.android.com/reference/android/content/Intent.html#ACTION_PACKAGE_ADDED) and then use the PackageManager's PackageInfo interface to list all the ContentProviders the new package has (see the ProviderInfo[] array).

Categories

Resources