有一些手机制造商需要特殊权限才能在普通手机上执行没有任何权限的日常操作。
如果您没有在清单中包含这些特定权限,您的应用程序就会崩溃。
所以,工作流程是这样的:
编写您的普通代码
发布您的应用
注意开发者控制台中的大量 java.lang.SecurityException 警报
以某种方式找到缺少的权限并将它们放入清单中。
例如:
我有一行代码需要:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
Run Code Online (Sandbox Code Playgroud)
该代码在大多数设备上运行良好,但在华为设备上还需要:
<uses-permission android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS"/>
Run Code Online (Sandbox Code Playgroud)
在观察到开发者控制台内的一些崩溃后,我从 stackoverflow 找到了上述许可,而不是来自官方来源。
正如预期的那样,此工作流程非常耗时。
是否有任何此类制造商特定权限的列表?如果是这样,如果我们可以将它们全部聚集在一起,那将是理想的。
谢谢。
我们希望在我们的应用中集成奖励视频广告(https://firebase.google.com/docs/admob/android/rewarded-video).如果我们不提供测试设备,广告效果很好.但是,如果我们这样做,我们会收到error code 0aka ERROR_CODE_INTERNAL_ERROR,所以执行会通过onRewardedVideoAdFailedToLoad.
这是其他人遇到过的吗?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_ad);
MobileAds.initialize(this, APP_ID);
mAd = MobileAds.getRewardedVideoAdInstance(this);
mAd.setRewardedVideoAdListener(this);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("C67A1A9F2F19699874B7718074819FF9") // Test devices don't work work with rewarded video ads.
.build();
mAd.loadAd(AD_UNIT_ID, adRequest);
}
@Override
public void onRewardedVideoAdFailedToLoad(int errorCode) {
Toast.makeText(this, "onRewardedVideoAdFailedToLoad", Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)