first of all i have to admit that im a newbie in Android, but we know that in android we can't start private activities of applications by another application . unless they're set to android:exported=true in their intent-filter
or they are made for implicit
calls .
but we should be able to start private Activities from withing the application . and when it comes to browsers (specially in android) we can use Intent URLs
to start a private Activity of the browser .
i found some Activities in Opera Mobile, and the problem is i just cant run them using Intent URL, and i have no idea what am i doing wrong in this .
for example there is a Activity in opera called OperaMainActivity
(or another called OperaStartActivity
) im trying to start them like this :
intent:#Intent;component=com.opera.browser/com.opera.android.OperaMainActivity;end
or
intent:#Intent;component=com.opera.browser/com.opera.android.OperaStartActivity;end
but none of these will start the Activity Called.
though i can still start AdMarvelActivity
which is a private as well :
"intent:#Intent;S.url=https://google.com;component=com.opera.browser/com.admarvel.android.ads.AdMarvelActivity;end";
here is how OperaMain Activity defined in AndroidManifest
:
<activity ns0:label="@string/app_name_title" ns0:name="com.opera.android.OperaMainActivity" ns0:launchMode="singleTask" ns0:configChanges="keyboard|keyboardHidden|orientation|screenSize" ns0:windowSoftInputMode="10" />
and there is no intent-filter
for it .
and this is how AdMarvelActivity
defined in AndroidManifest
:
<activity ns0:theme="@*ns0:style/Theme.NoTitleBar.Fullscreen" ns0:name="com.admarvel.android.ads.AdMarvelActivity" ns0:process=":helper" ns0:configChanges="keyboard|keyboardHidden|orientation" />
i see no major difference between these two . what am i doing wrong ?!