实施eSIM,LPA示例



我正试图使用文档中的示例编写一个在设备上实现eSim的代码测试示例https://source.android.com/devices/tech/connect/esim-overview?hl=en。设备支持eSim,验证方法mgr.isEnabled((返回true。但是,当我尝试调用公共加载方法downloadSubscription时,不会发生任何事情,onReceive方法不会被调用。

static final String ACTION_DOWNLOAD_SUBSCRIPTION = "download_subscription";
static final String LPA_DECLARED_PERMISSION
= "com.your.company.lpa.permission.BROADCAST";
BroadcastReceiver receiver =
new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (!action.equals(intent.getAction())) {
return;
}
resultCode = getResultCode();
detailedCode = intent.getIntExtra(
EuiccManager.EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE,
0 /* defaultValue*/);
resultIntent = intent;
}
};
context.registerReceiver(receiver,
new IntentFilter(ACTION_DOWNLOAD_SUBSCRIPTION),
LPA_DECLARED_PERMISSION /* broadcastPermission*/,
null /* handler */);
// Download subscription asynchronously.
DownloadableSubscription sub = DownloadableSubscription
.forActivationCode(code /* encodedActivationCode*/);
Intent intent = new Intent(action);
PendingIntent callbackIntent = PendingIntent.getBroadcast(
getContext(), 0 /* requestCode */, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
mgr.downloadSubscription(sub, true /* switchAfterDownload */,
callbackIntent);

我不太明白这里到底需要指定什么CCD_;com。你的公司";到我的包裹名称,但它不起作用

我和你面临着同样的问题,真正解决问题的是:

当您创建这样的新意图时,将其作为参数传递给PendingIntent:

Intent intent = new Intent(action);

操作值应该与action_DOWNLOAD_SUBSCRIPTION相同,我在它们上传递了不同的值,并且您不需要设置LPA_DECLARED_PERMISSION,您可以将null传递给registerBroadcast。

最新更新