위젯을 홈 화면에 추가 할 수있는 응용 프로그램을 만들었습니다. 위젯은 내 Nexus 6P와 Motorola Moto G3에서 작동합니다.Android - Samsung : 구성 활동으로 위젯 만들기가 실패합니다.
삼성 휴대 전화 (S3 미니 (4.1.2), S5, S6 (6.0.1)에서 테스트 됨)를 사용하면 위젯이 전혀 추가되지 않거나 TouchWiz가 손상 될 수 있습니다.
다른 런처 (Nova)를 사용하면 위젯이 S3 mini에도 생성되지 않습니다.
logcat에 오류 메시지가 전혀 표시되지 않습니다.
가능한 한 문제를 줄이려고했습니다. counter_widget_info.xml에서 android:configure="de.cliff.strichliste.widgets.WidgetConfigurationActivity"
을 제거하면 위젯이 생성됩니다. 구성 활동을 사용하려면 Samsung S3 mini에서 TouchWiz가 충돌합니다.
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="40dp"
android:minHeight="40dp"
android:configure="de.cliff.strichliste.widgets.WidgetConfigurationActivity"
android:updatePeriodMillis="1800000"
android:initialLayout="@layout/widget_counter"
android:resizeMode="horizontal|vertical"
android:widgetCategory="home_screen"
android:previewImage="@drawable/widget_preview">
</appwidget-provider>
가의 AndroidManifest.xml에서 나는 다음과 같은 라인 위젯 등록 :
public class WidgetConfigurationActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WidgetConfigurationBinding binding = DataBindingUtil.setContentView(this, R.layout.widget_configuration);
setResult(RESULT_OK);
}
}
:
<receiver
android:name=".widgets.CounterWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/counter_widget_info" />
</receiver>
자바 측면을, 나는하여 WidgetConfigurationActivity에 다음있어 WidgetProvider 클래스의이 내용은 다음과 같습니다.
public class CounterWidgetProvider extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
Intent intent = new Intent(context, CounterWidgetProvider.class);
context.startService(intent);
}
}
그냥 머리가 위로 : 나는 TouchWiz 충돌을 일으키는 테스트에서 나는 어떤 이상한 행동을 발견했습니다. 재부팅 후, TouchWiz는 실제로 홈 화면을 만들지 않은 위젯에 대한 참조에 어떻게 든 붙잡 았고, 업데이트 업데이트를 시작했습니다. 방금 전에 자주 업데이트되는 기존의 위젯 프로젝트로 테스트를 실행하고 매번 '토스트 (Toast)'를 보여주기 때문에주의해야합니다. 테스트를 계속하기 전에 테스트를 마친 모든 장치에서 전체 제거를 수행하여 제거하십시오. –