Feature #3289
Register Movian as .torrent handler
Status: | New | Start date: | 04/26/2017 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | % Done: | 0% | ||
Category: | Filesystem | |||
Target version: | 5.2 |
Description
On android alot of other players register themself as .torrent file handlers but Movian doesn't do that. You can make following manifest file:
<?xml version="1.0" encoding="utf-8" standalone="no"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.lonelycoder.mediaplayer" platformBuildVersionCode="21" platformBuildVersionName="5.0.1-1624448"> <uses-feature android:name="android.software.leanback" android:required="false"/> <uses-feature android:name="android.hardware.touchscreen" android:required="false"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <application android:banner="@drawable/banner" android:icon="@drawable/ic_launcher" android:label="Movian"> <service android:label="Movian" android:name="CoreService"/> <activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:label="Movian" android:name=".GLWActivity"> <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.MAIN"/> <category android:name="android.intent.category.LEANBACK_LAUNCHER"/> </intent-filter> </activity> </application> </manifest>
For torrent controller app it is:
<?xml version="1.0" encoding="utf-8" standalone="no"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" package="ru.vidsoftware.acestreamcontroller.free" platformBuildVersionCode="23" platformBuildVersionName="6.0-2704002"> <uses-feature android:name="android.software.leanback" android:required="false"/> <uses-feature android:name="android.hardware.touchscreen" android:required="false"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="com.android.email.permission.ACCESS_PROVIDER"/> <uses-permission android:name="com.android.vending.BILLING"/> <uses-permission android:name="android.permission.GET_ACCOUNTS"/> <uses-permission android:name="android.permission.USE_CREDENTIALS"/> <uses-permission android:name="android.permission.READ_LOGS"/> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/> <uses-feature android:glEsVersion="0x00020000" android:required="true"/> <android:uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/> <application android:allowBackup="true" android:backupAgent="ru.vidsoftware.acestreamcontroller.free.AppBackupAgent" android:banner="@drawable/tv_banner" android:icon="@drawable/main" android:label="@string/app_name" android:name="ru.vidsoftware.acestreamcontroller.free.App"> <meta-data android:name="com.google.android.backup.api_key" android:value="AEdPqrEAAAAITSva1bWLMI33_YG4wMczRD7tDSZkiyMgx0FjMw"/> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> <receiver android:enabled="true" android:name="com.google.android.gms.analytics.AnalyticsReceiver"> <intent-filter> <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH"/> </intent-filter> </receiver> <service android:enabled="true" android:exported="false" android:name="com.google.android.gms.analytics.AnalyticsService"/> <receiver android:exported="true" android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER"/> </intent-filter> </receiver> <service android:name="com.google.android.gms.analytics.CampaignTrackingService"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:label="@string/playback_title" android:name="ru.vidsoftware.acestreamcontroller.free.playback.PlaybackActivity" android:theme="@style/TSC.Theme.Dark.PlaybackActivity"/> <activity android:name="ru.vidsoftware.acestreamcontroller.free.DummyActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> </intent-filter> </activity> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:name="ru.vidsoftware.acestreamcontroller.free.PurchasePerformerActivity" android:theme="@style/TSC.Theme.Dark.PurchasePerformerActivity"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:label="@string/webpage_activity_title" android:name="ru.vidsoftware.acestreamcontroller.free.WebPageActivity" android:theme="@style/TSC.Theme.Dark.WebPageActivity"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:name="ru.vidsoftware.acestreamcontroller.free.ChangelistActivity" android:theme="@style/TSC.Theme.Dark.ChangelistActivity"> <intent-filter> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <action android:name="android.intent.action.VIEW"/> <data android:scheme="ru.vidsoftware.acestreamcontroller.free"/> <data android:host="ru.vidsoftware.acestreamcontroller.free.ChangelistActivity"/> </intent-filter> </activity> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:label="@string/nvi_title" android:name="ru.vidsoftware.acestreamcontroller.free.NewVersionInstallerActivity" android:theme="@style/TSC.Theme.Dark.NewVersionInstallerActivity"> <intent-filter> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <action android:name="android.intent.action.VIEW"/> <data android:scheme="ru.vidsoftware.acestreamcontroller.free"/> <data android:host="ru.vidsoftware.acestreamcontroller.free.NewVersionInstallerActivity"/> </intent-filter> </activity> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:label="@string/app_name" android:name="ru.vidsoftware.acestreamcontroller.free.IntentHandlerActivity" android:theme="@style/Theme.AppCompat.NoDisplay"> <intent-filter> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <action android:name="android.intent.action.VIEW"/> <data android:scheme="ru.vidsoftware.acestreamcontroller.free.IntentHandlerActivity"/> </intent-filter> </activity> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:name="ru.vidsoftware.acestreamcontroller.free.SplashActivity" android:theme="@style/TSC.Theme.Dark.SplashActivity"> <intent-filter android:label="@string/app_name"> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LEANBACK_LAUNCHER"/> </intent-filter> <intent-filter> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <action android:name="android.intent.action.SEND"/> <action android:name="android.intent.action.VIEW"/> <data android:scheme="acestream"/> <data android:scheme="magnet"/> <data android:scheme="acelive"/> </intent-filter> <intent-filter> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <action android:name="android.intent.action.SEND"/> <action android:name="android.intent.action.VIEW"/> <data android:scheme="acestream"/> <data android:scheme="magnet"/> <data android:scheme="acelive"/> <data android:mimeType="*/*"/> </intent-filter> <intent-filter> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <action android:name="android.intent.action.SEND"/> <action android:name="android.intent.action.VIEW"/> <data android:scheme="file"/> <data android:scheme="http"/> <data android:scheme="https"/> <data android:host="*"/> <data android:pathPattern=".*\\.torrent"/> <data android:pathPattern=".*\\.m3u"/> <data android:pathPattern=".*\\.m3u8"/> <data android:pathPattern=".*\\.acelive"/> <data android:pathPattern=".*\\.contentid"/> </intent-filter> <intent-filter> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <action android:name="android.intent.action.SEND"/> <action android:name="android.intent.action.VIEW"/> <data android:scheme="file"/> <data android:scheme="http"/> <data android:scheme="https"/> <data android:host="*"/> <data android:pathPattern=".*\\.torrent"/> <data android:pathPattern=".*\\.m3u"/> <data android:pathPattern=".*\\.m3u8"/> <data android:pathPattern=".*\\.acelive"/> <data android:pathPattern=".*\\.contentid"/> <data android:mimeType="*/*"/> </intent-filter> <intent-filter> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <action android:name="android.intent.action.SEND"/> <action android:name="android.intent.action.VIEW"/> <data android:scheme="file"/> <data android:scheme="http"/> <data android:scheme="https"/> <data android:scheme="content"/> <data android:mimeType="application/x-bittorrent"/> <data android:mimeType="application/x-ts-stream"/> <data android:mimeType="application/x-mpegurl"/> <data android:mimeType="audio/x-mpegurl"/> </intent-filter> </activity> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:label="@string/newsource_title" android:name="ru.vidsoftware.acestreamcontroller.free.NewSourceActivity" android:theme="@style/TSC.Theme.Dark.NewSourceActivity"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:name="ru.vidsoftware.acestreamcontroller.free.AppLauncherActivity" android:theme="@style/Theme.AppCompat.NoDisplay"> <intent-filter> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <action android:name="android.intent.action.VIEW"/> <data android:scheme="ru.vidsoftware.acestreamcontroller.free"/> <data android:host="ru.vidsoftware.acestreamcontroller.free.AppLauncherActivity"/> </intent-filter> </activity> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:label="@string/channels_title" android:name="ru.vidsoftware.acestreamcontroller.free.ChannelsTabActivity" android:theme="@style/TSC.Theme.Dark.ChannelsTabActivity.Medium"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:label="@string/history_title" android:name="ru.vidsoftware.acestreamcontroller.free.HistoryActivity" android:theme="@style/TSC.Theme.Dark.HistoryActivity"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:name="ru.vidsoftware.acestreamcontroller.free.LicenseInfoActivity" android:theme="@style/TSC.Theme.Dark.LicenseInfoActivity"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:name="ru.vidsoftware.acestreamcontroller.free.AboutActivity" android:theme="@style/TSC.Theme.Dark.AboutActivity"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:label="@string/channel_epg_title" android:name="ru.vidsoftware.acestreamcontroller.free.ChannelEPGActivity" android:theme="@style/TSC.Theme.Dark.ChannelEPGActivity"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:label="@string/settings_title" android:name="ru.vidsoftware.acestreamcontroller.free.settings.SettingsActivity2" android:theme="@style/TSC.Theme.Dark.SettingsActivity"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:label="@string/settings_remote_engine_settings_title" android:name="ru.vidsoftware.acestreamcontroller.free.settings.SettingsRemoteEngineActivity" android:theme="@style/TSC.Theme.Dark.SettingsActivity"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:label="@string/settings_local_engine_settings_title" android:name="ru.vidsoftware.acestreamcontroller.free.settings.SettingsLocalEngineActivity" android:theme="@style/TSC.Theme.Dark.SettingsActivity"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:label="@string/settings_common_engine_settings_title" android:name="ru.vidsoftware.acestreamcontroller.free.settings.SettingsCommonEngineActivity" android:theme="@style/TSC.Theme.Dark.SettingsActivity"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:label="@string/settings_misc_behavior_title" android:name="ru.vidsoftware.acestreamcontroller.free.settings.SettingsMiscBehaviorActivity" android:theme="@style/TSC.Theme.Dark.SettingsActivity"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:label="@string/settngs_default_player_category_title" android:name="ru.vidsoftware.acestreamcontroller.free.settings.SettingsDefaultPlayerActivity" android:theme="@style/TSC.Theme.Dark.SettingsActivity"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:label="@string/settings_misc_tuning_title" android:name="ru.vidsoftware.acestreamcontroller.free.settings.SettingsMiscTuningActivity" android:theme="@style/TSC.Theme.Dark.SettingsActivity"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:exported="false" android:label="@string/settings_misc_purchases_title" android:name="ru.vidsoftware.acestreamcontroller.free.settings.SettingsMiscPurchasesActivity" android:theme="@style/TSC.Theme.Dark.SettingsActivity"/> <activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:name="com.google.android.gms.ads.AdActivity" android:theme="@android:style/Theme.Translucent"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:label="@string/payment_title" android:name="ru.vidsoftware.acestreamcontroller.free.PaymentActivity" android:theme="@style/TSC.Theme.Dark.PaymentActivity"/> <activity android:configChanges="locale|keyboardHidden|orientation|screenSize" android:name="ru.vidsoftware.acestreamcontroller.free.engine.android.AceStreamPremiumServiceActivity" android:theme="@style/TSC.Theme.Dark.AceStreamPremiumServiceActivity"/> <service android:exported="false" android:name="ru.vidsoftware.acestreamcontroller.free.playback.PlaybackService"/> <service android:exported="false" android:name="ru.vidsoftware.acestreamcontroller.free.conproxy.ProxyService"/> <service android:exported="false" android:name="ru.vidsoftware.acestreamcontroller.free.osd.OSDServiceImpl"/> <service android:exported="false" android:name="ru.vidsoftware.acestreamcontroller.free.license.LicenseService"/> <service android:exported="false" android:name="ru.vidsoftware.acestreamcontroller.free.portmapping.PortMapperServiceImpl2"/> <provider android:authorities="ru.vidsoftware.acestreamcontroller.free.files" android:exported="true" android:name="ru.vidsoftware.acestreamcontroller.free.FileProvider"/> <receiver android:name="ru.vidsoftware.acestreamcontroller.free.job.JobBootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> <receiver android:name="ru.vidsoftware.acestreamcontroller.free.job.alarm.AlarmJobReceiver"/> <receiver android:enabled="false" android:name="ru.vidsoftware.acestreamcontroller.free.job.alarm.NetworkStateReceiver"> <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> <action android:name="android.net.wifi.WIFI_STATE_CHANGED"/> </intent-filter> </receiver> <service android:exported="false" android:name="ru.vidsoftware.acestreamcontroller.free.job.alarm.AlarmJobService"/> <activity android:name="com.google.android.gms.ads.purchase.InAppPurchaseActivity" android:theme="@style/Theme.IAPTheme"/> <provider android:authorities="ru.vidsoftware.acestreamcontroller.free.google_measurement_service" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementContentProvider"/> <receiver android:enabled="true" android:name="com.google.android.gms.measurement.AppMeasurementReceiver"> <intent-filter> <action android:name="com.google.android.gms.measurement.UPLOAD"/> </intent-filter> </receiver> <service android:enabled="true" android:exported="false" android:name="com.google.android.gms.measurement.AppMeasurementService"/> </application> </manifest>
After making the first one for Movian .torrent files become associated with Movian but it still fails to open them.
History
#1
Updated by Rob Koni about 6 years ago
Only the Intent filters are needed, that is AFAIK what is needed. Maybe you get more from this info:
http://stackoverflow.com/questions/18577860/creating-app-which-opens-a-custom-file-extension
http://stackoverflow.com/questions/9872450/make-your-app-a-default-app-to-open-a-certain-file
http://stackoverflow.com/questions/3760276/android-intent-filter-associate-app-with-file-extension
http://stackoverflow.com/questions/1733195/android-intent-filter-for-a-particular-file-extension
#2
Updated by Rob Koni about 6 years ago
Handler / intent filter should then also incorporate
SRT / MKV / MP4 / MP3 / AVI / MAGNET / Torrent / MPG / ISO / http(s) for Youtube links in e-mails / VOB / SSA / WAV / WMA / WMV / OPUS etc.
#3
Updated by Leonid Protasov over 5 years ago
- Priority changed from High to Normal
#4
Updated by Rob Koni almost 5 years ago
It seems @deank fixed that in his modded Android builds, which can be found on 4PDA
- Register as handler for: .torrent / .mkv / .mp4 / .mov / .avi / .ts / magnet and other video files from LOCAL and HTTP/HTTPS sources
https://4pda.ru/forum/index.php?showtopic=669064&st=2940#entry72593742
You need an account (generate that via the dedicated 4PDA android app) to download the APK files