【发布时间】:2019-12-10 07:03:30
【问题描述】:
我在使用 Xamarin Forms 创建小部件配置活动时遇到问题。我认为正在发生的事情是,在编译时,包的名称会被主要活动的随机 #/string 替换。但是,如果我检查生成的 APK,我可以看到 <appwidget-provider ... android:configure="my.package.myClass".../> 没有得到更新。我认为应该是<appwidget-provider ... android:configure="randomstring.myClass".../>。所以我相信这会阻止配置屏幕出现。有没有办法强制使用 Xamarin 更新此属性上的包名称?或者有没有办法在小部件放置期间调用此属性之前在代码中设置此属性?
这是我的配置(包名已被简化以帮助调试):
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="288dip"
android:minHeight="72dip"
android:resizeMode="horizontal"
android:minResizeWidth="144dip"
android:updatePeriodMillis="1000"
android:initialLayout="@layout/Widget"
android:previewImage="@drawable/previewImage"
android:configure="quickclip.QuickClipConfigActivity"
/>
namespace quickclip
{
[Activity(Label = "QuickClipConfigActivity", Name= "quickclip.QuickClipConfigActivity", Exported=true )]
[IntentFilter(new string[] { "android.appwidget.action.APPWIDGET_CONFIGURE" })]
public class QuickClipConfigActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Setup);
SetResult(Result.Canceled);
// Create your application here
}
}
}
[Activity] 属性的名称字段只是为了调试目的而添加的。不管有没有它,放置小部件都不会显示配置屏幕,也不会进入活动类(通过断点验证),小部件也不显示。但是,如果我删除 android:configure="my.package.myClass" 我可以让小部件正常显示。
【问题讨论】:
-
TBH你的问题很模糊,我无法理解你的问题是什么,是活动属性还是IDK,你能给我一个问题的要点吗?
标签: android xamarin xamarin.forms android-widget