How can I add my own app to the whatsapp audio selection like this application in android (with java)?
I know, I asked this question already but I didn't get a useful answer. I didn't think that it could work, but I found this app and it works on my android phone (Huawei VNC-L31/Huawei P9 Lite, Android 7.0). (Screenshot)
I tried it with the one-to-one intent filter from the manifest of this app but it didn't work.
Thanks for grammar correction ;)
in whatsapp(like app) do like this on audio selection
Intent intent = new Intent();
intent.setType("audio/*");
intent.setAction(Intent.ACTION_PICK);
startActivityForResult(Intent.createChooser(intent,"Select Audio "), reqCode);
and in your application create an activity which contains list of audio.
add code like this in AndroidManifest.xml
<activity
android:name=".activity.AudioListActivity"
android:windowSoftInputMode="stateAlwaysHidden">
<intent-filter>
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="audio/*" />
</intent-filter>
</activity>
and in your AudioListActivity return result to other app on selection of audio or as you required.
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="content"/>
<data android:host="media"/>
<data android:mimeType="audio/*"/>
<data android:mimeType="application/ogg"/>
<data android:mimeType="application/x-ogg"/>
<data android:mimeType="application/itunes"/>
</intent-filter>
Related
I know this question is not new, but its a bit different from already asked questions. I have a website that provides links to my app. The links direct users to specific data on my app. This is the layout of my app: I have 4 activities as Activity1.class, Activity2.class, Activity3.class, and of course the MainActivity.class which is the launcher activity.
My worry is this: On my website, I have 3 buttons: button 1 goes to open directly Activity1 on my app (assuming the app is already installed on the device), Button 2 on website opens Activity2 in my app.
Note: the app and the website are not by any means linked.
My question is: how to get a URL link to specific activity on my app. I need 3 URLs that open different 3 activities. I need these links for external use, such that they open a specified activity whey clicked.
Something like: http://myapppackage/ACTIVITY1.
This is just an example.
In you AndroidManifest.xml add intent-filters to the activities like this
<activity android:name=".ACTIVITY1">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="http"
android:host="myapppackage"
android:pathPattern="/ACTIVITY1" />
</intent-filter>
</activity>
<activity android:name=".ACTIVITY2">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="http"
android:host="myapppackage"
android:pathPattern="/ACTIVITY2" />
</intent-filter>
</activity>
<activity android:name=".ACTIVITY3">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="http"
android:host="myapppackage"
android:pathPattern="/ACTIVITY3" />
</intent-filter>
</activity>
For more info check this out
Deep Linking In Android
When using App Links, the receiver app (EX. Whatsapp) is paused, and your application's activity is opened on top of the receiver app.
For example, if you open your link from a WhatsApp's chat page, the new activity isn't opened from your app (The WhatsApp's task in recent apps includes your app), while your app isn't in the recent task.
But what if I want to open my application in a new task? Separate from the receiver app?
This is my Manifest file of the activity opened from the App Link:
<activity
android:name=".Activitys.MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter
android:autoVerify="true"
android:label="#string/app_name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="eventtk.uae-dc.com"
android:pathPrefix="/product/"
android:scheme="https" />
</intent-filter>
</activity>
Is there a thing I should add to the IntentFilter?
Not sure if I understood correctly what you would like to achieve, but you can try
to add
android:launchMode="singleTask"
to your activity definition.
More information here:
https://inthecheesefactory.com/blog/understand-android-activity-launchmode/en
Say I have my website at: https://www.domain.tld/
Is it possible to add different intents in the sense:
https://www.domain.tld/ will open some activity
https://www.domain.tld/directory 1 will open some other activity
https://www.domain.tld/direcotry2 will open some other activity... and so on?
I have a gradle-based Android Studio project written mainly in Java, if that helps.
Also, as of now, I have an intent as follows:
https://www.domain.tld/ opens some activity
https://subdomain.domain.tld/ opens some other activity.
To accomplish this, I have used Android Studio's URL Mapping Editor as follows:
I have added https://www.domain.tld as the Host, I have chosen the option path and left its text field blank and mapped it to the required activity.
I have thought about trying pathPrefix and pathPattern, but, I don't think it'll work in my case. If I had to map just the sub-directories, it was easy, but, I need to maintain a seperate intent for the root directory of my website. So, the path, pathPrefix as well as pathPattern, will contain my root-directory and so, it might not work (this is a guess). Also, I'm not very sure about what pathPattern means.
So, I'm thinking of moving the sub-domain to a sub-directory in my website. I'll do so, only if it's possible to handle the intents as I have mentioned above.
I think, it's possible, just don't know very well, how.
Regarding pathPattern you can check the documentation.
The below support for pathPattern would help you in to handle the host URL only.
An asterisk ('*') matches a sequence of 0 to many occurrences of the
immediately preceding character.
As per your needs, Android Studio's URL Mapping Editor will help you to create the below intent filters for the URLs in order to open a specific Activity.
More details is available here.
<activity
android:name=".MainActivity"
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="www.domain.tld"
android:scheme="https"
android:pathPattern="/*" />
</intent-filter>
</activity>
<activity
android:name=".Main2Activity"
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="www.domain.tld"
android:pathPrefix="/directory1" />
</intent-filter>
</activity>
<activity
android:name=".Main3Activity"
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="www.domain.tld"
android:pathPrefix="/directory2" />
</intent-filter>
</activity>
I have created a browser application with below code,
AndroidManifest.xml
<activity
android:name=".CustomBrowserActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="http" android:host="www.google.com" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
Now I have another application which tries to open google home page http://www.google.com
Intent intentToOpen = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
Intent chooserIntent = Intent.createChooser(intentToOpen, "Load http://www.google.com with: ");
Now, whenever above code is executed, default browser is opened, rather than my custom browser.
Any help would be appreciated.
I am developing Android Wallet application using SEEK API and NFC. I have the Visa applet installed in the Sim card. My question is, How to detect if a successful/unsuccessful contact is made to the POS terminal? Is there any Intent Action available in Android that I can put in some activity or some receiver?
Thanks.
Actually I Found the way of detecting POS terminal transaction. The NFC API, TRANSACTION_DETECTED is hidden. When transaction is there, TagDetectedActivity will launch.
<activity android:name=".TagDetectedActivity" android:launchMode="singleTask">
<intent-filter>
<action android:name="android.nfc.action.TRANSACTION_DETECTED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="nfc" android:host="secure" android:port="0" android:pathPrefix="/axxxxx" />
</intent-filter>
<intent-filter>
<action android:name="com.gsma.services.nfc.action.TRANSACTION_EVENT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="nfc" android:host="secure" android:port="0" android:pathPattern="/.*/axxxxx.*" />
</intent-filter>
</activity>