Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android PreferenceManager.GetDefaultSharedReferences(上下文?)已过时:已弃用_Android_Firebase Cloud Messaging - Fatal编程技术网

Android PreferenceManager.GetDefaultSharedReferences(上下文?)已过时:已弃用

Android PreferenceManager.GetDefaultSharedReferences(上下文?)已过时:已弃用,android,firebase-cloud-messaging,Android,Firebase Cloud Messaging,我最近在我的Android项目中更新了nugget软件包,现在我收到了以下代码行的消息: ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(Application.Context); CS0618:PreferenceManager.GetDefaultSharedReferences(上下文?)已过时:已弃用 有必要改变什么吗?我的代码不会像这样正常工作吗?我应该完全删除私有void stor

我最近在我的Android项目中更新了nugget软件包,现在我收到了以下代码行的消息:

 ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(Application.Context);
CS0618:PreferenceManager.GetDefaultSharedReferences(上下文?)已过时:已弃用

有必要改变什么吗?我的代码不会像这样正常工作吗?我应该完全删除私有void storeToken(字符串令牌)吗?我不确定我是否仍然需要私有的voidstoretoken(字符串令牌)

使用系统;
使用Android.App;
使用Android.Content;
使用Android.Util;
使用Firebase.Messaging;
使用System.Collections.Generic;
使用Android.Preferences;
使用Android.Media;
使用AndroidX.Core.App;
命名空间AndroidVersion
{
[服务]
[IntentFilter(新[]{“com.google.firebase.MESSAGING_EVENT”}]
公共类MyFirebaseMessagingService:FirebaseMessagingService
{
const string TAG=“MyFirebaseMsgService”;
公共覆盖无效OnNewToken(字符串标记)
{
Log.Debug(标记,“刷新令牌:”+令牌);
storeToken(token);
}
私有void存储令牌(字符串令牌)
{
//在共享首选项上保存令牌
iSharedReferences prefs=PreferenceManager.GetDefaultSharedReferences(Application.Context);
iSharedReferencesEditor=prefs.Edit();
PutString(“我的令牌”,令牌);
editor.Apply();
}
公共覆盖无效OnMessageReceived(RemoteMessage)
{
Log.Debug(标记“From:”+message.From);
var body=message.GetNotification().body;
var title=message.GetNotification().title;
调试(标记“通知消息正文:”+Message.GetNotification().Body);
SendNotification(正文、标题、消息、数据);
}
void SendNotification(字符串消息体、字符串标题、IDictionary数据)
{
var intent=新意图(此,类型为(活动1));
intent.AddFlags(ActivityFlags.ClearTop);
foreach(data.Keys中的var键)
{
intent.PutExtra(键,数据[key]);
}
var pendingent=pendingent.GetActivity(此,
活动1.1通知ID,
意图
悬而未决(一枪);
var notificationBuilder=new NotificationCompat.Builder(这是Activity1.CHANNEL\u ID)
.SetSmallIcon(Resource.Drawable.Icon)
.SetContentTitle(标题)
.SetContentText(messageBody)
.SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Notification))
.setVimble(新的长[]{1000,1000,0,0,0})
.SetLights(Android.Graphics.Color.Red,3000,3000)
.SetPriority((int)NotificationPriority.High)
.SetAutoCancel(真)
.SetContentIntent(挂起内容);
var notificationManager=NotificationManagerCompat.From(此);
notificationManager.Notify(Activity1.NOTIFICATION_ID,notificationBuilder.Build());
}
}

}是的,它已被弃用。使用AndroidX首选项库在所有设备上实现一致的行为

您可以使用AndroidX支持库版本的PreferenceManager,即
AndroidX.preference.PreferenceManage
r而不是
android.preference.PreferenceManager。

记住在build.gradle中添加以下内容

implementation 'androidx.preference:preference:1.1.1'

使用AndroidX.Preference使用
而不是使用Android.Preferences的

它不工作。我收到此错误消息:错误CS0234:命名空间“AndroidX”中不存在类型或命名空间名称“Preference”(是否缺少程序集引用?)是否需要安装另一个包含使用AndroidX.Preference.PreferenceManager;的nuget包;?如果是,我应该安装什么nuget软件包?
implementation 'androidx.preference:preference:1.1.1'