Is Android Automotives Car API only meant for OEMs? - android-automotive

The AOSP Automotive documentation states that third party apps should use the Car API("VehicleNetworkService. Controls vehicle HAL with built-in security. Access restricted to system components only (non-system components such as third party apps should use car API instead)",https://source.android.com/devices/automotive).
That is quite confusing because the android developer documentations state, that the only supported type of app is a media app which does not even draw its own UI except sign in and settings(https://developer.android.com/training/cars/media/automotive-os).
So is there a possibility to write other apps than media ones that may even use the car api to read the vehicle speed for example?

Car SDK is now released to developers and many Car APIs can be reached by third party apps, however privileged apps i.e. apps that are part of android system image and designed as privileged, can access more functionality that 3rd party apps. The access is gated by Android permissions.
See How to utilize Android Car API inside an app for my answer.

Of course you can develop any app running in Android Automotive Enviroment (i dont want to called it Android Automotive OS because it simply Android )
Google only given some advice/rules how to design your app in the way it good for Automotive product. Login, Car status check , Driver distraction limit...vv.
For 3rd developer sure you have to use Car API what car OEM offer and might require OEM's SDK also..
Goolge as of now only provide some kind of permisison that you can add to your app manifest. Then hopefully it can get correct information if OEM supported in thier IVI.
adb shell pm list permissions | grep car

Related

Third-party apps allowed in Android Automotive

The official documentation describes two kind of applications that can be implemented for Android Automotive, Media applications and Messaging applications. Also when creating a new project in Android Studio, the IDE prompts to select a template from those options.
My question is specific to third-party apps. Is Android Automotive limited to build one of these flavors? That is, interact with the user only through the native media UI of the vehicle or the messaging/notifications mechanism. Or as a third-party application developer I can build any other kind of applications (like generic phone/tablet android apps) with custom activities/screens? In case that any kind of applications are allowed, are they limited to run when the vehicle is parked?
Android Automotive is Android so you could build whatever android app you like and run it on Automotive. The catch is that Google is, as per now, only allowing Media/Messaging apps into Play Store and has quite specific design guidelines that developers need to follow.
When your app follows Googles Driver Distraction Guidelines then it can run when a vehicle is moving.

GameAnalytics, validating in app purchases on Unity

I'm setting up for the first time GameAnalytics in my Unity3D project.
I'm try to figure out if there is a way to validate in app purchases for both android and iOS from it.
In the docs I found http://www.gameanalytics.com/docs/ga-data#business-event. I understood that you need to work with native sdks to get this feature, am I right?
Could it be an option to configure from the dashboard an android and an iOS game and then changing the keys in unity with precompilator instructions? (like #if UNITY_ANDROID)?
I am an SDK developer # GameAnalytics.
Yes.
There is a way to make the GA servers validate Android and iOS IAP purchases in business events. From Unity.
Short story
You need to send the receipt in the business event after the purchase.
You can read our complete Unity tech guide in the Github Repository.
Regarding IAP validation you should read this section.
https://github.com/GameAnalytics/GA-SDK-UNITY/wiki/Business%20Event
About the keys
You should create a game for Android and iOS in our tool at go.gameanalytics.com
Inside the Unity Editor you can add platforms (Android / iOS) and then add specific keys to each.
You can read more about the in-editor settings in the wiki docs as well. Including how to login and select games directly in the editor.
Let me know if you have any issues. You could also file a support case with our friendly support staff.
When you install the Game Analytics unity package, you are essentially installing the native libraries for each platform (Android, iOS, ...) located in the Plugins folder.
If you want to target multiple platforms in your code with an API like Game Analytics, I recommend you use the preprocessor tags as you mentioned since the functions from Game Analytics are platform specific.

Smart TV App SDKs and support of auto start and auto update

I'm a newbe in SmartTV app development and trying to figure out if the related devices (SmartTVs) through their SDKs of the two major vendors Samsung and LG support the following when it comes to a custom implemented app:
Is it possible to auto start the app on TV start/restart? and if yes
how? Does someone know any reference in their APIs of how it is done?
if there is a newer version of my app how does the updates takes
place? Is it possible to automatically update the app or at least
send some short of notification for software update needed?
Thanks in advance
I add some notes:
auto start is possible in some countries on Samsung as ticker app. This ticker app is available only in some countries (I think in Korea and U.S., but I am not sure). If you want ticker app you can switch samsung to the "hotel mode" in the samsung service menu.
auto update is available when you set the flag in config.xml
<autoUpdate itemtype="boolean">y</autoUpdate>
There is no way to achieve autostart in SDK distributed by vendors.
But there is at least one app, that starts with TV (Some European
IPTV provider, can't remember name). You need to contact with
vendors support and find out for yourself.
Samsung apps distributed
and updated through its store, you upload updated version on seller
portal and its distributed on tv. Users are prompted to update app
when new version is available.
LG hosted apps you can update yourself, packaged apps - same as with Samsung.

How can I make my own iPhone app for myself?

I don't have an Apple computer, I just have an iPhone and some knowledge about language development. I want to create my own app for my own use, just for fun! I don't want to pay Apple for a developer account. I just want to develop my app and put it on my iPhone. I can either develop on Linux or Windows. How can I do that?
If you want to develop on an actual iPhone, you'll need a developer licence. To developer apps natively you will need a Mac running XCode.
There's lots of HTML5 libraries for making apps using javascript though. Maybe try out Phonegap or GameSalad
At the minimum you'll need to have OSX (Mac Operating system) to run Xcode/iphone emulator, you wont be able to do this without OSX.
EDIT:
You may be able to develop it using phone gap: http://phonegap.com/
You'll have to do testing on an adriod emulator, but I believe phonegap builds the app in the cloud. Good luck.
You can develop an app using adobe AIR or adobe Flash. Check out FlashDevelop for a free solution for making flash and air apps for everything from windows to android to iOS.
For a somewhat detailed tutorial on how to actually export an AIR project from FlashDevelop so you can install it on an iOS device, see:
http://www.codeandvisual.com/2011/exporting-for-iphone-using-air-27-and-flashdevelop-part-one-installation/
and FYI, this is not JUST for jailbroken iOS devices! :D
Native iOS applications can only be built in Xcode (which can only run on a Mac), and you need a developer membership to deploy those on an actual device (which costs about $100 a year). So, that’s the caveat: You can’t make native apps.
However, native apps aren’t the only option! There are two other approaches.
One way is to make a web app. These days, web apps can do almost everything that a native app can do (even access the camera). Unless you’re building something specialized (like a video editor, for example, or a game that needs to work with Bluetooth game controllers), you can probably make something as a web app. Years ago, I wasn’t happy with the flashcard apps on the market and wanted something custom but super simple to help me study JLPT vocabulary. At the time, I also didn’t have the money for a developer membership. I made it as a web app, and it worked great!
If you’re making a web app, you’ll need someplace to host it. There are lots of options. For example, the free tier on Firebase is plenty for a personal-use web app. You also might want to consider building the app using client-side scripting (like Javascript) so that you can host it statically, which will allow you to tell iOS to cache it so you can utilize it offline (Google “HTML offline manifest” for details).
The other way, if you have a friend with a developer account, is to build your app using a cross-platform framework like Flutter, where you don’t need a Mac to develop and test it, then ask your friend to make it for you. You’ll need to rebuild periodically (I think once a year) because your provisioning profile will expire.
If you use a framework like Flutter that can build both native AND web apps, that gives you the ability to run natively (if you have access to a Mac) or host it statically on someplace like Firebase Hosting (if you don’t).

Creating a single SmartTV app for multiple platforms?

I want to develop a SmartTV application for the GoogleTV platform and i've been browsing trough the GoogleTV Guidelines (https://developers.google.com/tv/android/).
However, i don't want GoogleTV to be my only platform. I also want the same app to work on devices like Samsung SmartTV and/or LG SmartTV.
But do the guidelines from Google conflict with Samsung guidelines and does the code of my application need a lot of rework to work on other devices?
I'm editing my answer. I just checked the Samsung website and, I'm happy to say, they threw out all the junk.
They use to have a number of different, non-interchangeable, coding languages. And none of them really worked on the TV's of the other manufacturers either. This is most likely the reason why few applications were ever developed for those platforms.
Now they are supporting basic javascript. So, you have the opportunity to build yourself a TV web page and load it up as an application on Samsung and potentially run it from the Google-TV browser. However, I would verify whether your application requires specific HTML5 features (such as offline support) that may not be implemented in the Android-like browser version running on Google-TV. Having said that, you can always build an app that loads locally on Samsung and runs from a remote server on Google-TV?
... for some historical perspective on how we go to where we're at you can continue reading....
The implication of each manufacturer having their own unique OS creating developer fragmentation was probably predictable to them but they were likely working in a panic. After they became aware of the Apple TV when the first patents were make public in 2008 they understood the longer term impact if Apple provided hundred of thousand of applications worth of content and they had nothing to compete. So they got together and decided on a standard they would implement that would provide a non-fragmented solution allowing any app to run on the TV's of any supporting manufacturer. AKA: they got it right.
In 2009 a good number of them announced support for the Yahoo Connected TV standard. However, by 2010 the development framework, app store, etc that was promised had not materialized. This is likely when they all went in their own direction (although you can still buy Yahoo Connected TV sets from Samsung, Sony, LG, Vizio, and Panasonic today).
With the implementation of the Google-TV Market and the ability of developers to transition existing apps to Google-TV apps with only 20% or so of the effort of creating new (thus lowering the cost and supporting the business case for a TV version) that they have a solution that meets their original requirements.
Now, there's certainly going to be a little 'bitten once twice shy' coupled with revenue sharing discussions and perhaps the impact of Google being a hardware manufacturer (Motorola Mobility) but, at the end of the day, the inevitable is inevitable. They either take Google-TV or create their own, very close, must run existing applications, version of Android.
PS: I didn't look at the other manufacturers site.
For my understanding core components like the Player and Remote Control Management are platform specific.
You would need to use a configuration file and implements these components independently for each platform.
Alternatively you can use some cross platform SDK.
Searching on Google for "smart tv app development" I found out:
Joshfire Smart TV SDK
http://www.joshfire.com/products/
Works on Google TV and Samsung
But not on LG
Mautilus Smart TV SDK
http://www.mautilus.com/knowhow/smart-tv-application-development/
As written in their website it covers
LG Netcast 2012
Samsung 2012 / 2013 models.
I hope it can helps.
orangeejs is a new open source project aims to ease the pain of cross platform smart tv app development. The target platforms are latest model of samsung/lg/android/ios.
There is a framework developed by BBC and called TAL. It aims to help you with cross-platform development. All their Smart TV apps were developed using this library so take a look.
First of all if you consider to develop for many TV platforms see the:
https://developers.google.com/tv/web/lib/jquery/
It's jQuery library for Google TV, so you can develop application in HTML/JavaScript just like in Samsung and LG.
Of course there are the differences in key handling, video player, event handling so you will need to develop the framework which cover all this differences.
There are few open source frameworks out there but not mature enough to use it "out of the box".
for example: http://framework.joshfire.com/
You might want to take a look at cloudee-couch which is open-sourced by Boxee. This example/framework is built on top of Spine.js. Base classes take care of key handling, focus, and oauth authentication.
It's not a big deal to make an application for the smart tv platform that supports across the devices. Now the industry is filled with a lot of smart tv app development companies with their unique functionalities and features to offer the customized app as per the business models. FYI I'd suggest you choose the best smart tv app builder from the list. Hope it will be helpful for the video content creators & business owners to stream across the tv.
VPlayed
Zype
Uscreen
Explore the complete list here Ref: https://dev.to/dwarak17/5-smart-tv-app-development-companies-to-develop-tv-apps-in-2021-1584
While both Samsung and LG have proprietary Smart TV systems, they also both support Google TV. If you create an app for Google TV, you'll only have to write it once and it will run on Samsung's Google TV's, LG's Google TV's, Vizio's Google TV's, and Sony's Google TV's.