tencent cloud

Tencent Cloud Super App as a Service

Customizing Permission Requests

PDF
Focus Mode
Font Size
Last updated: 2025-07-04 17:33:32

Mini program requests for system permissions

When using mini programs, some mini program APIs require not only mini program authorization but also corresponding Android system permissions to function properly. The SDK will automatically prompt users to grant these system permissions when these APIs are used. You can disable automatic permission requests during SDK initialization, but the superapp must manually request these system permissions to ensure that the mini program APIs operate correctly.
@ProxyService(proxy = MiniConfigProxy.class)
public class MiniConfigProxyImpl extends MiniConfigProxy {
/**
* superapp’s Application
* @return
*/
@Override
public Application getApp() {
return "app Application";
}

/**
* Creates initialization configuration information
* @return
*/
@Override
public MiniInitConfig buildConfig() {
MiniInitConfig.Builder builder = new MiniInitConfig.Builder();
MiniInitConfig config = builder
.configAssetName("tcsas-android-configurations.json") // Configuration file name in assets
.autoRequestPermission(false) // Whether to automatically request system permissions for APIs that require permissions
.debug(true) // Log switch, default is off
.build();
}
}

Customize system permission request

By overriding the IPermissionManagerProxy API, you can intercept mini program requests for Android system permissions and customize the permission request logic. The IPermissionManagerProxy API includes three methods: isPermissionGranted checks if the superapp has a specific system permission; requestForPermission and requestForPermissions notify the superapp to request a specific permission or a group of permissions.
Note:
After customizing system permission requests, the autoRequestPermission setting in the initialization configuration will no longer take effect.
@ProxyService(proxy = IPermissionManagerProxy.class)
public class PermissionProxyImpl implements IPermissionManagerProxy {

/**
* Checks if the superapp has a specific system permission
* @param context - Android context
* @param permission - The system permission to be checked, refer to android.Manifest.permission
* @return Whether the superapp has permission
*/
@Override
public boolean isPermissionGranted(Context context, String permission) {
return ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED;
}

/**
* Notifies the superapp to request a system permission
* @param activity - The mini program Activity that requests the permission
* @param permission - The system permission to be requested, refer to android.Manifest.permission
* @param callbacks - Callback that returns the permission request result to the mini program
*/
@Override
public void requestForPermission(Activity activity, String permission, RequestPermissionCallback callbacks) {
Toast.makeText(activity,"Requesting" + permission + "permission", Toast.LENGTH_LONG).show();
}

/**
* Notifies the superapp to request a system permission
* @param activity - The mini program Activity that requests the permission
* @param permissions - The system permission list to be requested, refer to android.Manifest.permission
* @param callbacks - Callback that returns the permission request result to the mini program
*/
@Override
public void requestForPermissions(Activity activity, String[] permissions, RequestPermissionCallback callbacks) {
Toast.makeText(activity,"Requesting" + permissions[0] + "and other permissions", Toast.LENGTH_LONG).show();
}
}
/**
* Notifies the result of system permission requests
*/
interface RequestPermissionCallback {
/**
* All system permissions requested successfully
*/
void onSuccess();

/**
* Some or all system permissions were denied
* @param rejected The list of denied system permissions
*/
void onFail(String[] rejected);
}



Help and Support

Was this page helpful?

Help us improve! Rate your documentation experience in 5 mins.

Feedback