システム レベルの権限があり、ウィジェットをデバイスのホーム画面のデフォルト アイテムにしたいと考えています。
マニフェストで次を使用して試したこと
<uses-permission android:name="android.permission.BIND_APPWIDGET"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
これはマニフェストのアプリケーションタグにあります
<receiver
android:name=".StartOnBootReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
これは、StartOnBootReceiver.java というクラスにあります。
public class StartOnBootReciever extends BroadcastReceiver {
private static final String TAG = "rwid_StartOnBootReceiver";
public StartOnBootReciever(){
}
@Override
public void onReceive(Context context, Intent intent){
Log.d(TAG, "Your app is alive");
final AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
final AppWidgetHost appWidgetHost = new AppWidgetHost(context,R.id.Acceleration_Widget);
int appWidgetId = appWidgetHost.allocateAppWidgetId();
ComponentName comp = new ComponentName(context.getPackageName(),WidgetActivity.class.getName());
Log.d(TAG,""+appWidgetManager.bindAppWidgetIdIfAllowed(appWidgetId,comp));
Intent intent1 = new Intent(context, WidgetActivity.class);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
}
}
ログ記録により、デバイスの起動時にこのコードが実行されることはわかっていますが、ホーム画面にウィジェットを表示できないようです。