Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.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 如何在通知面板上添加开关_Android - Fatal编程技术网

Android 如何在通知面板上添加开关

Android 如何在通知面板上添加开关,android,Android,我找不到如何在通知面板中添加按钮/开关。 我看到Spotify添加了一个在在线和离线模式之间切换的功能,所以我想这是可能的 谢谢 这种能力出现在Android 7.0 API级别24+中。 要创建自己的快速设置互动程序,需要创建Java类扩展TileService类,并在AndroidManifest.xml中声明它,并具有android.permission.BIND\u quick\u settings\u互动程序的权限 MyTileService.class AndroidManifest

我找不到如何在通知面板中添加按钮/开关。 我看到Spotify添加了一个在在线和离线模式之间切换的功能,所以我想这是可能的

谢谢


这种能力出现在Android 7.0 API级别24+中。 要创建自己的快速设置互动程序,需要创建Java类扩展TileService类,并在AndroidManifest.xml中声明它,并具有android.permission.BIND\u quick\u settings\u互动程序的权限

MyTileService.class

AndroidManifest.xml

您可以在基类或中每个方法的注释中了解TileService类的回调

public class MyTileService extends TileService {

    private static final String TAG = "MyTileService";

    @Override
    public void onCreate() {
        Log.d(TAG, "onCreate()");
    }

    @Override
    public void onTileAdded() {
        Log.d(TAG, "onTileAdded()");
    }

    @Override
    public void onTileRemoved() {
        Log.d(TAG, "onTileRemoved()");
    }

    @Override
    public void onStartListening() {
        Log.d(TAG, "onStartListening()");
    }

    @Override
    public void onStopListening() {
        Log.d(TAG, "onStopListening()");
    }

    @Override
    public void onClick() {
        Log.d(TAG, "onClick()");
    }
}
...

<service
    android:name=".MyTileService"
    android:icon="@drawable/ic_tray"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">

    <intent-filter>
        <action android:name="android.service.quicksettings.action.QS_TILE" />
    </intent-filter>
</service>

...