Commit 8d425e89 authored by wanglei's avatar wanglei

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	app/src/main/AndroidManifest.xml
#	app/src/main/java/com/base/browserwhite/ui/activity/MainActivity.kt
parents f58bb0b0 e3536802
......@@ -124,8 +124,6 @@ dependencies {
//支持暂停恢复下载
implementation("com.liulishuo.filedownloader:library:1.7.7")
//facebook
implementation("com.facebook.android:facebook-android-sdk:[8,9)")
//firebase
......@@ -139,4 +137,6 @@ dependencies {
// Use this dependency to use the dynamically downloaded model in Google Play Services
// implementation ("com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.1")
//facebook
}
\ No newline at end of file
......@@ -14,9 +14,7 @@
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<queries>
<intent>
<action android:name="android.intent.action.MAIN" />
......
......@@ -30,7 +30,6 @@ public class FCMManager {
}
}
});
}
public static void unsubscribeFromTopic(String topic) {
......
......@@ -2,28 +2,27 @@ package com.base.browserwhite.ui.activity
import android.app.usage.StorageStatsManager
import android.graphics.Color
import android.net.Uri
import android.os.Build
import android.os.Environment
import android.os.StatFs
import android.os.storage.StorageManager
import android.provider.MediaStore
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.updatePadding
import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2
import com.base.browserwhite.R
import com.base.browserwhite.bean.ConstObject.isFirstMainShow
import com.base.browserwhite.databinding.ActivityMainBinding
import com.base.browserwhite.ui.activity.splash.Splash2Activity
import com.base.browserwhite.ui.fragment.FileFragment
import com.base.browserwhite.ui.fragment.HomeFragment
import com.base.browserwhite.ui.views.DialogViews.showDefaultBrowserDialog
import com.base.browserwhite.ui.views.DialogViews.showMyAccountDialog
import com.base.browserwhite.utils.BarUtils
import com.base.browserwhite.utils.LogEx
import com.base.browserwhite.utils.ShortcutUtils.createShortcut
import java.io.File
class MainActivity : BaseActivity<ActivityMainBinding>() {
private val TAG = "MainActivity"
......@@ -46,6 +45,12 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
}
override fun initView() {
// 在Activity中调用创建快捷方式的方法
ShortcutHelper.requestCreateShortcut(
this, "my_shortcut_id", "My Shortcut", "Open My App quickly",
Splash2Activity::class.java, R.mipmap.logo
)
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
......@@ -94,12 +99,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
binding.llMy.setOnClickListener {
showMyAccountDialog()
}
try {
createShortcut()
} catch (e: Exception) {
LogEx.logDebug(TAG, "")
}
}
......
package com.base.browserwhite.utils;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
import android.graphics.drawable.Icon;
import android.os.Build;
public class ShortcutHelper {
/**
* 请求创建桌面快捷方式。
*
* @param context 应用上下文。
* @param shortcutId 快捷方式的唯一标识符。
* @param shortLabel 快捷方式的简短标签。
* @param longLabel 快捷方式的长标签。
* @param activityClass 快捷方式要启动的Activity。
* @param iconResId 快捷方式的图标资源ID。
*/
public static void requestCreateShortcut(Context context, String shortcutId, String shortLabel, String longLabel, Class<?> activityClass, int iconResId) {
// 创建启动Activity的Intent
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.N_MR1){return;}
Intent intent = new Intent(context, activityClass);
intent.setAction(Intent.ACTION_VIEW);
// 创建ShortcutInfo实例
ShortcutInfo shortcut = new ShortcutInfo.Builder(context, shortcutId)
.setShortLabel(shortLabel)
.setLongLabel(longLabel)
.setIcon(Icon.createWithResource(context, iconResId))
.setIntent(intent)
.build();
// 获取ShortcutManager实例
ShortcutManager shortcutManager = (ShortcutManager) context.getSystemService(Context.SHORTCUT_SERVICE);
// 检查API级别和是否支持请求创建快捷方式
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if (shortcutManager != null && shortcutManager.isRequestPinShortcutSupported()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Android 8.0及以上,直接请求创建快捷方式
shortcutManager.requestPinShortcut(shortcut, null);
} else {
// Android 7.1 (API级别25) 使用广播接收用户响应
Intent pinnedShortcutCallbackIntent = shortcutManager.createShortcutResultIntent(shortcut);
PendingIntent successCallback = PendingIntent.getBroadcast(context, 0, new Intent("com.example.SUCCESS"), PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent failureCallback = PendingIntent.getBroadcast(context, 0, new Intent("com.example.FAILURE"), PendingIntent.FLAG_UPDATE_CURRENT);
shortcutManager.requestPinShortcut(shortcut, successCallback.getIntentSender());
}
}
}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment