Preventing devices without a GL extension from downloading app from Google Play - opengl-es

Is it possible to make an app unavailable for devices without a specific OpenGL ES extension on Google Play store?
Since <supports-gl-texture> takes the extension name, not the texture format, can it be exploited for generic GLES extensions?

Yes I believe there is, for example:
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
This statement will prevent devices that do not support OpenGL es 2.0 from seeing your app in the playstore.
Try this:
String extensions = javax.microedition.khronos.opengles.GL10.glGetString(
GL10.GL_EXTENSIONS);
According to the docs, the extensions variable will contain a space-separated list of supported extensions to GL. So I think you can just use .contains("GL_OES_depth24"); or something. You're going to have to check some example content of whats returned to see how to check for it.
I don't know how to stop the app from coming up in google play store but you can just put this check at the beginning of your app that will tell users that you can't use this app or something.

Related

Android Auto media app issue with duplicate apps

We developed a Mobile app with Xamarin forms. Now we want to give support for Android-Auto (Cars).
Made all the necessary configurations to make it work for our media player-related app on Android Auto.But I am able to see the 2 apps on the Android auto console (DHU). From one of the app, we are able to see all the content whatever we are expecting. Due to this duplicate/ multiple apps issue. I am unable to see the media content playing when we play the audio from Mobile. I have added all the necessary changes in manifest file related to MediaBrowser service and intent filter. But still facing the above mentioned issues.
Am I missing something here? How to get it to work as expected?
I added in the manifest file about support for Android-auto.
<meta-data android:name="com.google.android.gms.car.application"
android:resource="#xml/automotive_app_desc"/>
...

Sharing Files with other Chrome Extensions using ARC

We have an Android application that we have developed and are testing with ARC. Part of the functionality is to share Word/PDF and other documents with other applications on an Android device and then have them pass the content back to us when done. However, since ARC applications run in their own sandbox instance of Android there are no other applications to share with using the standard intents. I know that Chrome Extensions can message each other, but is there a way to access this functionality from an Android APP running arc. Ideally we'd like to share a document have it open in say Google Drive, and then be able to get it back from there using the standard Android intents. Is this possible, or do we have to look at other ways to accomplish this (i.e. SDKs.)
Update: Here is the code we use to launch external activities to have them open files for editing:
Uri uri = Uri.fromFile(attachmentFile);
Intent intentUrl = new Intent(Intent.ACTION_VIEW);
intentUrl.setDataAndType(uri, applicationType);
intentUrl.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
getContext().startActivity(externalActivityIntent);
You can get the file from Google Drive or any other file provider available on the chromeOS using the new intent: ACTION_OPEN_DOCUMENT

How to disable App Extensions?

If I don't want the Pinterest app extension to show up in my UIActivityViewController, how can I remove it? Previously I could just add the activity type to the excludedActivityTypes array. That doesn't seem to work with app extensions.
Applications require a special entitlement to exclude individual extension-provided activity items. (Not 100% sure but) Managed devices can also have individual extensions blocked via MDM.

Is it possible to prevent your app from appearing as an extension for specific apps?

I've built an Action Extension for my app, and when i choose to Open In... something from inside of my app, I appear as an extension for myself. This UX is kinda weird, but also, it doesnt even work when i try to be an extension of myself.
I dont see anything in the documentation that specifies responding apps aside from NSExtensionActivationRule?
This is not possible at the moment in iOS 8.0

App not compatible with tablet

I've build an Android app...for phones...but I wouldn't mind to broaden my audience and let Tablet owners download it as well....
To be honest. it doesn't look very neat on a tablet...but I don't really mind that. I'll at least give them the option.
unfortunately I cant find the app on the Google Play Store / Android Market with my tablet! when I launch the url directly in the browser, I am being redirected to the Play store, but it says "this app is not compatible with your device"
I didn't specify anything in my Manifest like "android:xlargeScreens" (the default should be true, right?
I also didn't specify any device restrictions in the Store Publish page
Unfortunately I only have one tablet to test it with...so I don't know if it's the tablets fault, my apps fault or the Play Store's fault....
I have an HP Touchpad (CM9)....it's rather experimental device - but other phone apps works without a problem on that device
while developing, I also used my tablet as a test device, and the app launched on it. so I don't really know why the Play Store is forbidding me to download the app....
are there any special requirement that my Manifest or my XML-layouts have to match, for the Play Store to open it for tablet users as well?
The tablet may not support some of the features that your app requires. You can make them "not required" for the app (that means that you should check if they are actually available before using them in the code).
It is done like that:
<!-- features -->
<uses-feature android:name="android.hardware.telephony" android:required="false" />
Other possible features are:
android.hardware.camera
android.hardware.camera.autofocus
android.hardware.location.gps
android.hardware.location
android.hardware.location.network
For full list of relations between features<->permissions, you can see:
http://developer.android.com/guide/topics/manifest/uses-feature-element.html
See "Feature reference"
write below code into your android manifest.xml file for make application tablet compatible.
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true" />
I solved my own problem:
I did 2 things:
1 - I disabled 'touchscreen'
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
this disables ADVANCE touchscreen controls (like flicking etc.)
but I think the thing that did it was the following:
2 - I disabled the Copy Protection in the Play Store Publish page
a few hours later I could find my app on my tablet and install it!
Android documentation clearly mentioned that if your app supporting v3.1+ then you should have tag in AndroidManifest.xml
http://developer.android.com/guide/practices/screen-compat-mode.html

Resources