ورود

View Full Version : تغییر برنامه به برنامه پیش فرض جهت باز کردن فایل !؟ (default app)



ghasem110deh
دوشنبه 15 مرداد 1397, 18:34 عصر
سلام به همه، دوستان این یکی سوال که روی هوا مونده :-)

http://barnamenevis.org/showthread.php?549983-%D8%A8%D8%A7%D8%B2-%DA%A9%D8%B1%D8%AF%D9%86-%D9%88-%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8-%D9%85%D8%B3%DB%8C%D8%B1-%D9%81%D8%A7%DB%8C%D9%84-%DB%8C%D8%A7-%D9%BE%D9%88%D8%B4%D9%87

اما سوال فعلی اینه که چطوری برنامه ام رو به برنامه پیش فرض جهت باز کردن فایل کنم !؟ یعنی اگه فایلی با پسوند مورد نظر، مثلا mp3 توی هر پوشه ای ... جایی بود بعد از ضربه زدن کاربر روی فایل برنامه اجرا بشه و قایل پخش بشه ! یا مثلا پی دی اف باز بشه

من یه چیزایی سرچ زدم ولی هیچ اتفاقی نمیوفته ! در واقع الان نیاز دارم با ضربه زدن روی فایل --> برنامه باز بشه --> uri فایل هم بگیرم که بتونم فایل رو پخش کنم !!! اما نمیشه :لبخند:


<activity android:name=".FileLauncherActivity"> <intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.OPENABLE" />
<data android:pathPattern=".*\\.pdf" />
<data android:pathPattern=".*\\..*\\.pdf" />
<data android:pathPattern=".*\\..*\\..*\\.pdf" />
<data android:pathPattern=".*\\..*\\..*\\..*\\.pdf" />
<data
android:host="*"
android:mimeType="*/*"
android:scheme="file" />
</intent-filter>
</activity>

و توی اکتیویتی


filePath = Objects.requireNonNull(getIntent().getData()).getE ncodedPath();

ghasem110deh
یک شنبه 28 مرداد 1397, 19:38 عصر
دوستان یعنی اینقدر سوالم حرفه ایه !؟
:لبخند::لبخند::قهقهه:

farhad_shiri_ex
شنبه 03 شهریور 1397, 17:26 عصر
دوستان یعنی اینقدر سوالم حرفه ایه !؟
:لبخند::لبخند::قهقهه:

اول یک اکتیویتی خالی بساز و دستورات تعریف توی مانیفست را با این کد عوض کن

<activity
android:name="com.path.to.your.FakeLauncherActivity"
android:enabled="false">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>


بعد از متد زیر استفاده کن!

public static void resetPreferredLauncherAndOpenChooser(Context context) {
PackageManager packageManager = context.getPackageManager();
ComponentName componentName = new ComponentName(context, com.path.to.your.FakeLauncherActivity.class);
packageManager.setComponentEnabledSetting(componen tName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

Intent selector = new Intent(Intent.ACTION_MAIN);
selector.addCategory(Intent.CATEGORY_HOME);
selector.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(selector);

packageManager.setComponentEnabledSetting(componen tName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, PackageManager.DONT_KILL_APP);
}


فکر کنم با یکم تغییر کارت راه بیوفته!