Determine the app IDs of applications on iPhone - iphone

Does anyone know how to programmatically determine the application IDs of the apps on an iPhone? I.E. to determine what applications have been installed on an iPhone?

You cannot do this without Jailbreaking the phone. Apple 'sandboxes' each app, so it cannot see outside of its box. If you had a particular application in mind, and that application had a URL scheme, you could check to see if that scheme was supported (which would indicate the app was probably installed), but that's as close as you're going to get.

Related

Restrict my iOS device to a particular app

I'm searching a way to restrict my iOS device to a particular app.
I have found a good way to disable my iPad Home button functionality through Kiosk Mode for iOS
So is it possible to restrict my iOS device to a particular app without jail-breaking?
Will App-Store reject my application if I done this?
Phew... Finally I found.Guided Access is a new feature in iOS 6 that will do the functionality .It's a built-in feature.
Guided Access is activated for a particular app, iOS device will automatically launch that app every time.
You can power off the device by holding down the "Power + Home" button.
If you’d like to learn how to use Guided Access in iOS 6, You can see more details here
That is a huge security violation as far as the App Store would be concerned. For an enterprise applications its possible you could find a way. But for a public App Store download this is not only next to impossible its also a guaranteed rejection.
So is it possible automatically launch my app every time after iPad booted without jail-breaking?
No. Jailbreaking only will allow you to mess with the default behavior of the system such as Launch Items
Will Apple-Store reject my application if I implement the behavior?
If you somehow find a way to circumvent the issue, (i.e. exploit a security breach) then your app will be rejected.
App review guidelines, section 2.4, 2.5

An iOS App how to find all other application on the iPhone?

Bump, Chomp & Appsfire all can list other application on the iPhone, how to do it?
By using Google I found this link quite helpful, it says basically there are two ways to find if certain apps are installed without jailbreaking your device:
checking if a specific URL scheme is supported by the device => canOpenUrl:
comparing the devices currently running processes to known app executable names => sysctl()
Short answer, you can't.
Longer answer you can't without violating the dev agreement and risking app rejection.
There are two methods of doing this (on a non-jailbroken phone):
Check to see if custom URL schemes that are known to be used by certain apps are registered as described in http://www.iphonedevsdk.com/forum/iphone-sdk-development/37103-finding-out-what-apps-installed.html (this allows you to check for certain known apps, not get a list of all installed apps.
The way appsfire does with a desktop 'companion' app, that grabs this info from your iTunes and sends it to their server. (See this article as to why the appsfire developer pulled his app because apple wouldn't approve an update anymore).
Sorry I couldn't be of more help but that's apple!

Any way to automatically trigger launch of my app

Is there any way to automatically launch my app when the iPhone receives an external phone call?
Thanks
Is there any way? Maybe if you jailbreak it and dig around in the private frameworks, which is something I don't know much about. As for an officially documented method, you're very out of luck.
In iOS, to launch an app that is not currently running or suspended, you use a custom URL scheme. The OS comes standard with built in support for a few different schemes, tel being one of them. Supporting this scheme is what makes the Phone app launch automatically with a telephone number. According to the docs:
The handlers for these schemes are
fixed and cannot be changed. If your
URL type includes a scheme that is
identical to one defined by Apple, the
Apple-provided application is launched
instead of your application.
So, even if you were to explicitly support the scheme, the OS would trump your app with the phone app.

List of applications installed on a iPhone, via the iPhone itself or iTunes

Is it possible to get a list of all installed applications from an iPhone itself? I have read myths of people accessing the internal iTunes data, getting the list of installed apps that way.
1/ A app installed on the iPhone itself and is able to report all installed apps to an external website.
2/ A desktop application that would parse the iTunes data and gather the required information before posting it to an external website.
Anyone have any (A) experience on either of the above or (B) better ideas on how one would go about gathering the App Store name of an application installed on a iPhone.
It is not possible to get a complete list of applications that are installed on the iPhone from the iPhone itself, unless you work on a jailbroken iPhone. You can test for some applications by testing whether there's an application that responds to a particular URL scheme (using UIApplication's canOpenURL method)
A desktop application can do this by reading the data itself. However, it is not programmatically supported, so you're on your own there.

Using the iPhone SDK, can I programmatically get a list of the applications/games on a users iPhone/iPod touch?

I would like to be able to pull the list of apps and games the user has and present it to them, or launch one of them. I'm guessing that Apple doesn't provide this capability in the iphone sdk. Still, I'd like to know how to do it and still be eligible for the app store.
You are correct Apple does not provide this in the iPhone SDK, therefore you cannot do this and get your app into the app store.
If the application has a published URL spec (i.e. Google Maps, Mail, ...) then you can launch the applicaiton via the URL launching spec.
But if the given game / application doesn't support the URL launching spec, then you have no way to launch it from your application. I also believe you cannot determine if an app is installed via the URL spec, only launch the application.
Check out the "URL types" reference for Info.PLIST.